#####################################################################
# The installer is devided into 4 main sections (section groups):   #
# "Default"           -> includes C::B core and core plugins        #
# "Lexers"            -> includes C::B lexers for different langs   #
# "Contrib plugins"   -> includes C::B contrib plugins              #
# "C::B share config" -> includes the C::B Share Config tool        #
# "Portable Launcher" -> includes cbLauncher, for portable C::B use #
#####################################################################
# What to do to add a new installer section (e.g. a new plugin):    #
# 1.) Add Installer section                                         #
# 2.) Add Uninstaller section (files in reverse order of installer) #
# 3.) Add macro to uninstaller functions                            #
# 4.) Add section description                                       #
# --> Basically you need to add stuff at 4 places! :-)              #
#####################################################################

Name Code::Blocks

# As of NSIS 3.0, Unicode is now supported. This means no Windows 95,98,ME.
# Since Code::Blocks only supports Windows XP and higher, we'll use it.
Unicode True

# Uncomment the following line to remove the
# 'Nullsoft Install System vX.XX' String:
BrandingText " "
# (Note that this string contains a space character.)

#########################################################
# Room for adjustments of most important settings BEGIN #
#########################################################
# Note: For each PC the installer needs to be adjusted  #
# in terms of source path's for the files required by   #
# the installer. These settings can be adjusted in      #
# between this comment and the same with "END".         #
# (... just look quite below).                          #
#########################################################

# The following line toggles whether the installer includes the MinGW
# compiler suite (including GDB) or not. Comment out to exclude MinGW.
#!define GCC_BUNDLE

# Notice installer packagers:
# Some paths are system specific and need most likely to be adjusted
# to suite your directories. Those path's start with a comment line:
# "Possibly required to adjust manually:" (see below).

###########
# Defines #
###########
# Possibly required to adjust manually:
# (Root folder of the Code::Blocks source)
!define CB_SRC			..\src
!searchparse /file		${CB_SRC}\include\autorevision.h '/*' REVISION '*/'
!define MAJORVERSION	12
!define MINORVERSION	11
!define REGKEY			"SOFTWARE\CodeBlocks"
!define VERSION			${MAJORVERSION}.${MINORVERSION}.${REVISION}
!define COMPANY			"The Code::Blocks Team"
!define URL 			http://www.codeblocks.org
#!define GCC_BUNDLE

###########
# Folders #
###########
# Possibly required to adjust manually:
# (Folder with wxWidgets DLL - unicode, monolithic.)
!define WX_BASE          ..\..\..\libs\wx2812\bin
# Possibly required to adjust manually:
# (CodeBlocks binary folder - the one where codeblocks.exe is.)
!define CB_BASE          ${CB_SRC}\output
!define CB_SHARE         \share
!define CB_SHARE_CB      ${CB_SHARE}\CodeBlocks
!define CB_DOCS          ${CB_SHARE_CB}\docs
!define CB_LEXERS        ${CB_SHARE_CB}\lexers
!define CB_PLUGINS       ${CB_SHARE_CB}\plugins
!define CB_SCRIPTS       ${CB_SHARE_CB}\scripts
!define CB_TEMPLATES     ${CB_SHARE_CB}\templates
!define CB_WIZARD        ${CB_TEMPLATES}\wizard
!define CB_IMAGES        ${CB_SHARE_CB}\images
!define CB_IMG_16        ${CB_IMAGES}\16x16
!define CB_IMG_SETTINGS  ${CB_IMAGES}\settings
!define CB_XML_COMPILERS ${CB_SHARE_CB}\compilers
# Possibly required to adjust manually:
# (Folder with full MinGW/GCC installation, *including* debugger.)
!define GCC_BASE		C:\MinGW
# Possibly required to adjust manually:
# (Folder with logos used in this installer.)
!define CB_BITMAPS		bitmaps
# Possibly required to adjust manually:
# (Folder with documentation provided by mariocup and license.)
!define CB_DOCS_SRC		docs
# Possibly required to adjust manually:
# (Folder with a windows explorer library icon (Windows 7 or higher).)
!define CB_ICONS_SRC	icons
!ifdef GCC_BUNDLE
	!define CB_GCC         \GCC
!endif

#########
# Files #
#########
# Possibly required to adjust manually:
# Note: These files are only required for the installer.
!define CB_WELCOME		 ${CB_BITMAPS}\svn_welcome.bmp
!define CB_SPLASH        ${CB_BITMAPS}\svn_splash.bmp
!define CB_LOGO          ${CB_BITMAPS}\svn_logo.bmp
# Possibly required to adjust manually:
# Note: These files are only required for the installer.
!define CB_SVN_INFO      ${CB_DOCS_SRC}\cb_svn.txt
!define CB_LICENSE       ${CB_DOCS_SRC}\gpl-3.0.txt
!define CB_SM_GROUP      CodeBlocks

#######################################################
# Room for adjustments of most important settings END #
#######################################################

###################################################################################
# Usually below here no changes are required unless adding new installer features #
###################################################################################

# Included files
!include InstallOptions.nsh
!include WinMessages.nsh
!include Sections.nsh
!include WinVer.nsh
!include MUI2.nsh

# Reserved Files
ReserveFile "${NSISDIR}\Plugins\x86-unicode\Aero.dll"
ReserveFile "${NSISDIR}\Plugins\x86-unicode\advsplash.dll"
ReserveFile "${NSISDIR}\Plugins\x86-unicode\UserInfo.dll"

!define MUI_ICON                  	  "${NSISDIR}\Contrib\Graphics\Icons\modern-install-blue.ico"
#!define MUI_ICON                     "cb_svn_setup.ico"
!define MUI_UNICON                    "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-blue.ico"

# Aero look enabler function
!define	MUI_CUSTOMFUNCTION_GUIINIT	onGUIInit
# Installer pages
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP        "${CB_LOGO}" ; optional
!define MUI_WELCOMEFINISHPAGE_BITMAP  "${CB_WELCOME}" ; optional
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_WELCOMEPAGE_TITLE		  "Code::Blocks svn-${REVISION} Installation"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_FINISHPAGE_RUN 			  "$INSTDIR\codeblocks.exe"
!define MUI_FINISHPAGE_RUN_TEXT		  "Start using Code::Blocks now"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE    	 ${CB_LICENSE}
# Modified page for the unofficial installer disclaimer
!define MUI_PAGE_HEADER_TEXT		 "Package information"
!define MUI_PAGE_HEADER_SUBTEXT		 "Please read this information before you proceed to install this software."
!define MUI_LICENSEPAGE_TEXT_TOP	 " "
!define MUI_LICENSEPAGE_TEXT_BOTTOM	 " "
!define MUI_LICENSEPAGE_BUTTON		 "Next >"
!insertmacro MUI_PAGE_LICENSE	 	 ${CB_SVN_INFO}
# Installation procedure pages
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

# Uninstallation pages
!define MUI_UNWELCOMEFINISHPAGE_BITMAP  "${CB_WELCOME}" ; optional
!define MUI_FINISHPAGE_RUN			  ""
!define MUI_FINISHPAGE_RUN_TEXT 	  "Remove Code::Blocks configuration files"
!define MUI_FINISHPAGE_RUN_FUNCTION   "un.RemoveCBConfigurationFolder"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH

# Installer languages
!insertmacro MUI_LANGUAGE "English"

# Custom GUI init function
Function onGUIInit
	Aero::Apply /nobranding
FunctionEnd

######################################
# File manipulation helper functions #
######################################
Function WriteToFile
Exch $0 ;file to write to
Exch
Exch $1 ;text to write
 
  FileOpen $0 $0 a #open file
  FileSeek $0 0 END #go to end
  FileWrite $0 $1 #write to file
  FileClose $0
 
Pop $1
Pop $0
FunctionEnd
 
!macro WriteToFile NewLine File String
  !if `${NewLine}` == true
  Push `${String}$\r$\n`
  !else
  Push `${String}`
  !endif
  Push `${File}`
  Call WriteToFile
!macroend
!define WriteToFile `!insertmacro WriteToFile false`
!define WriteLineToFile `!insertmacro WriteToFile true`

# Function for creating an explorer library
!define EXPLORER_LIBRARY '$APPDATA\Microsoft\Windows\Libraries\CodeBlocks Projects.library-ms'
!define LIBRARY_ICON $INSTDIR${CB_IMAGES}\CodeBlocks-library.ico
Function CreateExplorerLibrary
	Delete '${EXPLORER_LIBRARY}'
	${WriteToFile} 	   '${EXPLORER_LIBRARY}' '<?xml version="1.0" encoding="UTF-8"?>'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '  <version>1</version>'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '  <isLibraryPinned>true</isLibraryPinned>'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '  <iconReference>'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '    ${LIBRARY_ICON}'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '  </iconReference>'
	${WriteLineToFile} '${EXPLORER_LIBRARY}' '</libraryDescription>'
FunctionEnd

# Installer attributes (usually these do not change)
# Note: We can't always use "Code::Blocks" as the "::" conflicts with the filesystem.
OutFile           cb-svn${REVISION}-setup.exe
InstallDir		  $LOCALAPPDATA\CodeBlocks
Caption           "Code::Blocks svn-${REVISION} Installation"
CRCCheck          on
XPStyle           on
ShowInstDetails   show
VIProductVersion  1.0.0.0
VIAddVersionKey   ProductName     "Code::Blocks"
VIAddVersionKey   ProductVersion  "${VERSION}"
VIAddVersionKey   CompanyName     "${COMPANY}"
VIAddVersionKey   CompanyWebsite  "${URL}"
VIAddVersionKey   FileVersion     "${VERSION}"
VIAddVersionKey   FileDescription "Code::Blocks cross-platform IDE"
VIAddVersionKey   LegalCopyright  ""
InstallDirRegKey  HKCU "${REGKEY}" Path
UninstallCaption  "Code::Blocks svn-${REVISION} Uninstallation"
ShowUninstDetails show

# Needed by Windows Vista/7/8: make sure that we start with user priviledges by default.
# Otherwise, shortcuts are always created for all users and never for the current user.
RequestExecutionLevel user

######################
# Installer sections #
######################

# These are the installer types.
# They basically wrap different selections of components.
# To use a component in section "Full" (=1) and "Edit" (=4) choose
# "SectionIn 1 4" in the section(s) accordingly (see how it's done below).
InstType "Full: All plugins, all tools, just everything"			# 1
InstType "Standard: Core plugins, core tools, and core lexers"		# 2
InstType "Minimal: Important plugins, important lexers"				# 3
InstType "Editor: Code::Blocks as editor only (all lexers)"			# 4

# Now the installer sections and section groups start.
# They basically define the tree of components available.
SectionGroup "!Default install" SECGRP_DEFAULT

    # C::B core begin

    Section "!Core Files (required)" SEC_CORE
        SectionIn 1 2 3 4 RO
        # If $INSTDIR is present, ask the user if that is OK
        IfFileExists $INSTDIR 0 doInstall
            # It appears $INSTDIR is present (and not empty).
            # Ask the user to probably abort installation process.
            MessageBox MB_YESNO|MB_ICONQUESTION \
                "The target directory does already exist. OK to continue anyways?$\r$\n(If you are unsure and want to keep the folder, click No.)" \
                /SD IDNO IDYES continueInstall IDNO abortInstall
abortInstall:
            # If user selected "no" -> abort the installation
            DetailPrint "Aborting installation."
            Abort
continueInstall:
            # fall through
doInstall:
        SetOutPath $INSTDIR
        # Verify if creating/accessing the target folder succeeded.
        # If not, issue an error message and abort installation
        IfErrors 0 accessOK
            MessageBox MB_OK|MB_ICONEXCLAMATION \
                "Cannot create the target folder.$\r$\nInstallation cannot continue.$\r$\nMake sure that you have the required permissions." \
                /SD IDOK
            DetailPrint "Aborting installation."
            Abort
accessOK:
		ClearErrors
        SetOverwrite on
        File ${WX_BASE}\wxmsw28u_gcc_481tdm.dll
		File ${CB_BASE}\wxcustombutton.dll
		File ${CB_BASE}\wxflatnotebook.dll
		File ${CB_BASE}\wxSTC.dll
		File ${CB_BASE}\wxSTEdit.dll
		File ${CB_BASE}\wxpropgrid.dll
		File ${CB_BASE}\mingwm10.dll
        File ${CB_BASE}\cb_console_runner.exe
        File ${CB_BASE}\codeblocks.dll
        File ${CB_BASE}\codeblocks.exe
        File ${CB_BASE}\exchndl.dll
        SetOutPath $INSTDIR${CB_SHARE_CB}
        File ${CB_BASE}${CB_SHARE_CB}\start_here.zip
        File ${CB_BASE}${CB_SHARE_CB}\tips.txt
        File ${CB_BASE}${CB_SHARE_CB}\manager_resources.zip
        File ${CB_BASE}${CB_SHARE_CB}\resources.zip
        File ${CB_BASE}${CB_SCRIPTS}\stl-views-1.0.3.gdb
		SetOutPath $INSTDIR${CB_DOCS}
        File ${CB_DOCS_SRC}\codeblocks.chm
        File ${CB_DOCS_SRC}\codeblocks.pdf
		File ${CB_DOCS_SRC}\index.ini
        SetOutPath $INSTDIR${CB_SCRIPTS}
        File ${CB_BASE}${CB_SCRIPTS}\*.script
        File ${CB_BASE}${CB_SCRIPTS}\stl-views-1.0.3.gdb
        SetOutPath $INSTDIR${CB_TEMPLATES}
        File ${CB_BASE}${CB_TEMPLATES}\*.*
        SetOutPath $INSTDIR${CB_IMAGES}
        File ${CB_BASE}${CB_IMAGES}\*.png
        SetOutPath $INSTDIR${CB_IMG_16}
        File ${CB_BASE}${CB_IMG_16}\*.png
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\*.png
        WriteRegStr HKCU "${REGKEY}\Components" "Core Files (required)" 1
    SectionEnd

    # C::B core end
	
	# C::B documentation begin
	
	SectionGroup "Documentation" SECGRP_DOCS
	
		Section /o "C++ Reference" SEC_DOCS_CPPREFERENCE
			SectionIn 1 2
			DetailPrint "Adding 'C++ Reference' to Help"
			${WriteLineToFile} '$INSTDIR${CB_DOCS}\index.ini' 'C++ Reference=cpp_reference.chm'
			SetOutPath $INSTDIR${CB_DOCS}
			File ${CB_DOCS_SRC}\cpp_reference.chm
			WriteRegStr HKCU "${REGKEY}\Components" "C++ Reference" 1
		SectionEnd
		
		Section /o "D Language Specification 2.0" SEC_DOCS_D2REFERENCE
			SectionIn 1
			DetailPrint "Adding 'D Language Specification 2.0' to Help"
			${WriteLineToFile} '$INSTDIR${CB_DOCS}\index.ini' 'D Language Specification 2.0=d2.chm'
			SetOutPath $INSTDIR${CB_DOCS}
			File ${CB_DOCS_SRC}\d2.chm
			WriteRegStr HKCU "${REGKEY}\Components" "D Language Specification 2.0" 1
		SectionEnd
		
	SectionGroupEnd
	
	# C::B documentation end

    # C::B shortcuts begin

    SectionGroup "Shortcuts" SECGRP_SHORTCUTS
	
		SectionGroup "Program Shortcut" SECGRP_PROGRAM_SHORTCUT
				Section "Current user" SEC_PROGRAMSHORTCUT
					SectionIn 1 2 3 4
					SetShellVarContext current
					SetOutPath $SMPROGRAMS\${CB_SM_GROUP}
					CreateShortCut "$SMPROGRAMS\${CB_SM_GROUP}\CodeBlocks.lnk" $INSTDIR\CodeBlocks.exe
					WriteRegStr HKCU "${REGKEY}\Components" "Program Shortcut" 1
				SectionEnd
				
				Section /o "All users" SEC_PROGRAMSHORTCUT_ALL
					SetShellVarContext all
					SetOutPath $SMPROGRAMS\${CB_SM_GROUP}
					CreateShortCut "$SMPROGRAMS\${CB_SM_GROUP}\CodeBlocks.lnk" $INSTDIR\CodeBlocks.exe
					# Verify if that succeeded. If not, issue an error message
					IfErrors 0 +2
						MessageBox MB_OK|MB_ICONEXCLAMATION \
							"Cannot create shortcut for all users.$\r$\nPlease make sure you are running this installer as Administrator." \
							/SD IDOK
					SetShellVarContext current
					WriteRegStr HKCU "${REGKEY}\Components" "Program Shortcut All Users" 1
				SectionEnd
		SectionGroupEnd

        Section /o "Desktop Shortcut" SEC_DESKTOPSHORTCUT
            SectionIn 1
            CreateShortCut "$DESKTOP\CodeBlocks.lnk" $INSTDIR\CodeBlocks.exe
            WriteRegStr HKCU "${REGKEY}\Components" "Desktop Shortcut" 1
        SectionEnd

        Section /o "Quick Launch Shortcut" SEC_QUICKLAUNCHSHORTCUT
            SectionIn 1 2
            CreateShortCut "$QUICKLAUNCH\CodeBlocks.lnk" $INSTDIR\CodeBlocks.exe
            WriteRegStr HKCU "${REGKEY}\Components" "Quick Launch Shortcut" 1
        SectionEnd
		
    SectionGroupEnd

    # C::B shortcuts end

	# C::B library begin
			
	Section /o "Explorer Library" SEC_EXPLORERLIBRARY 
	${If} ${AtLeastWin7}
		SectionIn 1 2
		SetOverwrite on
		SetOutPath $INSTDIR${CB_IMAGES} 
		File ${CB_ICONS_SRC}\CodeBlocks-library.ico
		DetailPrint "Creating 'CodeBlocks Projects' Library"
		Call CreateExplorerLibrary
        WriteRegStr HKCU "${REGKEY}\Components" "Explorer Library" 1
	${EndIf}
	SectionEnd
	
	# C::B library end
	
    # C::B lexers begin

    SectionGroup "Lexers" SECGRP_LEXERS

        SectionGroup "Compiler Languages"
            Section "C/C++"
                SectionIn 1 2 3 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_cpp.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_cpp.xml
                File ${CB_BASE}${CB_LEXERS}\lexer_rc.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_rc.xml
                WriteRegStr HKCU "${REGKEY}\Components" "C/C++" 1
            SectionEnd

			Section /o "Objective-C"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_objc.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_objc.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Objective-C" 1
            SectionEnd

            Section /o "Ada"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_ada.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_ada.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Ada" 1
            SectionEnd

            Section /o "The D Language"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_d.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_d.xml
                WriteRegStr HKCU "${REGKEY}\Components" "The D Language" 1
            SectionEnd

            Section /o "Fortran"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_f77.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_f77.xml
                File ${CB_BASE}${CB_LEXERS}\lexer_fortran.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_fortran.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Fortran" 1
            SectionEnd
			
			Section /o "Java"
				SectionIn 1 4
				SetOutPath $INSTDIR${CB_LEXERS}
				SetOverwrite on
				File ${CB_BASE}${CB_LEXERS}\lexer_java.sample
				File ${CB_BASE}${CB_LEXERS}\lexer_java.xml
				WriteRegStr HKCU "${REGKEY}\Components" "Java" 1				
			SectionEnd

            Section /o "Pascal"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_pascal.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_pascal.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Pascal" 1
            SectionEnd

            Section /o "Smalltalk"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_smalltalk.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_smalltalk.xml
                WriteRegStr HKCU "${REGKEY}\Components" "SmallTalk" 1
            SectionEnd
        SectionGroupEnd

        SectionGroup "Script Languages"
            Section "Squirrel"
                SectionIn 1 2 3 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_squirrel.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_squirrel.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Squirrel" 1
            SectionEnd

            Section /o "Angelscript"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_angelscript.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_angelscript.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Angelscript" 1
            SectionEnd

            Section /o "Caml"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_caml.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_caml.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Caml" 1
            SectionEnd

            Section /o "Haskell"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_haskell.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_haskell.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Haskell" 1
            SectionEnd

            Section /o "Lisp"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_lisp.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_lisp.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Lisp" 1
            SectionEnd

            Section /o "Lua"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_lua.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_lua.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Lua" 1
            SectionEnd

            Section /o "Python"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_python.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_python.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Python" 1
            SectionEnd

            Section /o "Perl"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_perl.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_perl.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Perl" 1
            SectionEnd

            Section /o "Postscript"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_postscript.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_postscript.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Postscript" 1
            SectionEnd

            Section /o "Ruby"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_ruby.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_ruby.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Ruby" 1
            SectionEnd

            Section /o "VB Script"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_vbscript.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_vbscript.xml
                WriteRegStr HKCU "${REGKEY}\Components" "VB Script" 1
            SectionEnd

            Section /o "Game Monkey"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_gm.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_gm.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Game Monkey" 1
            SectionEnd
        SectionGroupEnd

        SectionGroup "Markup Languages"
            Section "XML"
                SectionIn 1 2 3 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_xml.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_xml.xml
                WriteRegStr HKCU "${REGKEY}\Components" "XML" 1
            SectionEnd

            Section /o "HTML"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_html.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_html.xml
                WriteRegStr HKCU "${REGKEY}\Components" "HTML" 1
            SectionEnd

            Section /o "CSS"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_css.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_css.xml
                WriteRegStr HKCU "${REGKEY}\Components" "CSS" 1
            SectionEnd

            Section /o "LaTeX"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_latex.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_latex.xml
                WriteRegStr HKCU "${REGKEY}\Components" "LaTeX" 1
            SectionEnd
        SectionGroupEnd

        SectionGroup "Graphics Programming"
            Section /o "GLSL (GLslang)"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_glsl.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_glsl.xml
                WriteRegStr HKCU "${REGKEY}\Components" "GLSL (GLslang)" 1
            SectionEnd

            Section /o "nVidia Cg"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_cg.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_cg.xml
                WriteRegStr HKCU "${REGKEY}\Components" "nVidia Cg" 1
            SectionEnd

            Section /o "Ogre"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_OgreCompositor.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_OgreCompositor.xml
                File ${CB_BASE}${CB_LEXERS}\lexer_OgreMaterial.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_OgreMaterial.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Ogre" 1
            SectionEnd
        SectionGroupEnd

        SectionGroup "Embedded development"
            Section /o "Hitachi Assembler"
                SetOutPath $INSTDIR${CB_LEXERS}
                SectionIn 1 4
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_hitasm.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_hitasm.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Hitachi Assembler" 1
            SectionEnd

            Section /o "VHDL"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_vhdl.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_vhdl.xml
                WriteRegStr HKCU "${REGKEY}\Components" "VHDL" 1
            SectionEnd

            Section /o "Verilog"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_verilog.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_verilog.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Verilog" 1
            SectionEnd
        SectionGroupEnd

        SectionGroup "Shell / Binutils"
            Section /o "diff"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_diff.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_diff.xml
                WriteRegStr HKCU "${REGKEY}\Components" "diff" 1
            SectionEnd

            Section /o "Makefile"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_make.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_make.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Makefile" 1
            SectionEnd

            Section /o "bash script"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_bash.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_bash.xml
                WriteRegStr HKCU "${REGKEY}\Components" "bash script" 1
            SectionEnd

            Section /o "DOS batch files"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_batch.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_batch.xml
                WriteRegStr HKCU "${REGKEY}\Components" "DOS batch files" 1
            SectionEnd
        SectionGroupEnd

        SectionGroup "Others"
            Section /o "MASM"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_masm.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_masm.xml
                WriteRegStr HKCU "${REGKEY}\Components" "MASM" 1
            SectionEnd

            Section /o "NSIS installer script"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_nsis.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_nsis.xml
                WriteRegStr HKCU "${REGKEY}\Components" "NSIS installer script" 1
            SectionEnd
			
			Section /o "CMake"
				SectionIn 1 4
				SetOutPath $INSTDIR${CB_LEXERS}
				SetOverwrite on
				File ${CB_BASE}${CB_LEXERS}\lexer_cmake.sample
				File ${CB_BASE}${CB_LEXERS}\lexer_cmake.xml
				WriteRegStr HKCU "${REGKEY}\Components" "Cmake" 1
			SectionEnd

            Section /o "Matlab"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_matlab.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_matlab.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Matlab" 1
            SectionEnd

            Section /o "Sql"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_sql.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_sql.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Sql" 1
            SectionEnd

            Section /o "XBase"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_prg.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_prg.xml
                WriteRegStr HKCU "${REGKEY}\Components" "XBase" 1
            SectionEnd

            Section /o "Property file"
                SectionIn 1 4
                SetOutPath $INSTDIR${CB_LEXERS}
                SetOverwrite on
                File ${CB_BASE}${CB_LEXERS}\lexer_properties.sample
                File ${CB_BASE}${CB_LEXERS}\lexer_properties.xml
                WriteRegStr HKCU "${REGKEY}\Components" "Property file" 1
            SectionEnd
        SectionGroupEnd
    SectionGroupEnd

    # C::B lexers end

    # C::B core plugins begin

    SectionGroup "Core Plugins" SECGRP_CORE_PLUGINS

        Section "Abbreviations plugin" SEC_ABBREV
            SectionIn 1 2 4
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\abbreviations.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\abbreviations.dll
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\abbrev.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\abbrev-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "Abbreviations plugin" 1
        SectionEnd

        Section "AStyle plugin" SEC_ASTYLE
            SectionIn 1 2 4
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\astyle.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\astyle.dll
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\astyle-plugin.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\astyle-plugin-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "AStyle plugin" 1
        SectionEnd

        Section "Autosave plugin" SEC_AUTOSAVE
            SectionIn 1 2 3 4
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\autosave.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\autosave.dll
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\autosave.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\autosave-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "Autosave plugin" 1
        SectionEnd

        Section "Class Wizard plugin" SEC_CLASSWIZARD
            SectionIn 1 2
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\classwizard.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\classwizard.dll
            WriteRegStr HKCU "${REGKEY}\Components" "Class Wizard plugin" 1
        SectionEnd

        Section "Code Completion plugin" SEC_CODECOMPLETION
            SectionIn 1 2
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\codecompletion.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\codecompletion.dll
            SetOutPath $INSTDIR${CB_IMAGES}\codecompletion
            File ${CB_BASE}${CB_IMAGES}\codecompletion\*.png
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\codecompletion.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\codecompletion-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "Code Completion plugin" 1
        SectionEnd

        Section "Compiler plugin" SEC_COMPILER
            SectionIn 1 2 3
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\compiler.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\compiler.dll
			SetOutPath $INSTDIR${CB_XML_COMPILERS}
			File ${CB_BASE}${CB_XML_COMPILERS}\*.xml
            SetOutPath $INSTDIR${CB_IMAGES}
            File ${CB_BASE}${CB_IMAGES}\compile.png
            File ${CB_BASE}${CB_IMAGES}\compilerun.png
            File ${CB_BASE}${CB_IMAGES}\rebuild.png
            File ${CB_BASE}${CB_IMAGES}\run.png
            File ${CB_BASE}${CB_IMAGES}\stop.png
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\compiler.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\compiler-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "Compiler plugin" 1
        SectionEnd

        Section "Debugger plugin" SEC_DEBUGGER
            SectionIn 1 2 3
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\debugger.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\debugger.dll
            SetOutPath $INSTDIR${CB_IMAGES}
            File ${CB_BASE}${CB_IMAGES}\dbgnext.png
            File ${CB_BASE}${CB_IMAGES}\dbgrun.png
            File ${CB_BASE}${CB_IMAGES}\dbgrunto.png
            File ${CB_BASE}${CB_IMAGES}\dbgstep.png
            File ${CB_BASE}${CB_IMAGES}\dbgstop.png
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\debugger.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\debugger-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "Debugger plugin" 1
        SectionEnd

        Section "MIME Handler plugin" SEC_MIMEHANDLER
            SectionIn 1 2 3 4
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\defaultmimehandler.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\defaultmimehandler.dll
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\extensions.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\extensions-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "MIME Handler plugin" 1
        SectionEnd

        Section "Open Files List plugin" SEC_OPENFILESLIST
            SectionIn 1 2 3 4
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\openfileslist.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\openfileslist.dll
            WriteRegStr HKCU "${REGKEY}\Components" "Open Files List plugin" 1
        SectionEnd

        Section "Projects Importer plugin" SEC_PROJECTSIMPORTER
            SectionIn 1 2
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\projectsimporter.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\projectsimporter.dll
            WriteRegStr HKCU "${REGKEY}\Components" "Projects Importer plugin" 1
        SectionEnd

        Section "Scripted Wizard plugin" SEC_SCRIPTEDWIZARD
            SectionIn 1 2 3
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\scriptedwizard.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\scriptedwizard.dll
            SetOutPath $INSTDIR${CB_WIZARD}
            File /r ${CB_BASE}${CB_WIZARD}\*.*
            WriteRegStr HKCU "${REGKEY}\Components" "Scripted Wizard plugin" 1
        SectionEnd

        Section "ToDo List plugin" SEC_TODOLIST
            SectionIn 1 2 3 4
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\todo.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\todo.dll
            SetOutPath $INSTDIR${CB_IMG_SETTINGS}
            File ${CB_BASE}${CB_IMG_SETTINGS}\todo.png
            File ${CB_BASE}${CB_IMG_SETTINGS}\todo-off.png
            WriteRegStr HKCU "${REGKEY}\Components" "ToDo List plugin" 1
        SectionEnd

        Section "XP Look And Feel plugin" SEC_XPLOOKANDFEEL
            SectionIn 1 2
            SetOutPath $INSTDIR${CB_SHARE_CB}
            SetOverwrite on
            File ${CB_BASE}${CB_SHARE_CB}\xpmanifest.zip
            SetOutPath $INSTDIR${CB_PLUGINS}
            File ${CB_BASE}${CB_PLUGINS}\xpmanifest.dll
            WriteRegStr HKCU "${REGKEY}\Components" "XP Look And Feel plugin" 1
        SectionEnd

    SectionGroupEnd

    # C::B core plugins end

SectionGroupEnd

SectionGroup "Community Plugins" SECGRP_CONTRIB_PLUGINS

    # C::B community plugins begin

    Section /o "Auto Versioning plugin" SEC_AUTOVERSIONING
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\AutoVersioning.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\AutoVersioning.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Auto Versioning plugin" 1
    SectionEnd

    Section /o "Browse Tracker plugin" SEC_BROWSETRACKER
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\BrowseTracker.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\BrowseTracker.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Browse Tracker plugin" 1
    SectionEnd

    Section /o "Byo Games plugin" SEC_BYOGAMES
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\byogames.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\byogames.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Byo Games plugin" 1
    SectionEnd

    Section /o "Cccc plugin" SEC_CCCC
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\Cccc.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\Cccc.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Cccc plugin" 1
    SectionEnd
	
    Section /o "CodePaste plugin" SEC_CODEPASTE
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\CodePaste.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\CodePaste.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\CodePaste.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\CodePaste-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "CodePaste plugin" 1
    SectionEnd

    Section /o "Code Snippets plugin" SEC_CODESNIPPETS
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\codesnippets.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\codesnippets.dll
        SetOutPath $INSTDIR${CB_IMAGES}\codesnippets
        File ${CB_BASE}${CB_IMAGES}\codesnippets\*.png
        SetOutPath $INSTDIR
        File ${CB_BASE}\codesnippets.exe
        SetOutPath $SMPROGRAMS\${CB_SM_GROUP}
        CreateShortcut "$SMPROGRAMS\${CB_SM_GROUP}\Code Snippets.lnk" $INSTDIR\codesnippets.exe
        WriteRegStr HKCU "${REGKEY}\Components" "Code Snippets plugin" 1
    SectionEnd

    Section /o "Code Statistics plugin" SEC_CODESTAT
        SectionIn 1 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\codestat.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\codestat.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\codestats.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\codestats-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "Code Statistics plugin" 1
    SectionEnd

    Section /o "Color Coder plugin" SEC_COLORCODER
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\ColorCoder.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\ColorCoder.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\ColorCoder.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\ColorCoder-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "Color Coder plugin" 1
    SectionEnd
	
	Section /o "Compile on demand"	SEC_COMPILEONDEMAND
		SectionIn 1 2 3 4
		SetOutPath $INSTDIR${CB_SHARE_CB}
		SetOverwrite on
		File ${CB_BASE}${CB_SHARE_CB}\CompileOnDemand.zip
		SetOutPath $INSTDIR${CB_PLUGINS}
		File ${CB_BASE}${CB_PLUGINS}\CompileOnDemand.dll
		WriteRegStr HKCU "${REGKEY}\Components" "Compile on demand" 1
	SectionEnd

    Section /o "Copy Strings plugin" SEC_COPYSTRINGS
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\copystrings.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\copystrings.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Copy Strings plugin" 1
    SectionEnd
	
    Section /o "CppCheck plugin" SEC_CPPCHECK
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\CppCheck.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\CppCheck.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\CppCheck.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\CppCheck-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "CppCheck plugin" 1
    SectionEnd

    Section /o "DevPak plugin" SEC_DEVPAK
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\devpakupdater.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\devpakupdater.dll
        WriteRegStr HKCU "${REGKEY}\Components" "DevPak plugin" 1
    SectionEnd

    Section /o "Diff plugin" SEC_CBDIFF
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\cbDiff.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\cbDiff.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Diff plugin" 1
    SectionEnd

    Section /o "DoxyBlocks plugin" SEC_DOXYBLOCKS
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\DoxyBlocks.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\DoxyBlocks.dll
        SetOutPath $INSTDIR${CB_IMAGES}\DoxyBlocks
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\chm.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\comment_block.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\comment_line.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\configure.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\doxywizard.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\extract.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\html.png
        SetOutPath $INSTDIR${CB_IMAGES}\DoxyBlocks\16x16
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\chm.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\comment_block.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\comment_line.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\configure.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\doxywizard.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\extract.png
        File ${CB_BASE}${CB_IMAGES}\DoxyBlocks\16x16\html.png
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\DoxyBlocks.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\DoxyBlocks-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "DoxyBlocks plugin" 1
    SectionEnd

    Section /o "Drag Scroll plugin" SEC_DRAGSCROLL
        SectionIn 1 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\DragScroll.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\DragScroll.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\dragscroll.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\dragscroll-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "Drag Scroll plugin" 1
    SectionEnd

	Section /o "EditorConfig plugin" SEC_EDITORCONFIG
		SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\EditorConfig.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\EditorConfig.dll
		WriteRegStr HKCU "${REGKEY}\Components" "EditorConfig plugin" 1
	SectionEnd
	
	Section /o "Editor tweaks plugin" SEC_EDITORTWEAKS
		SectionIn 1
		SetOutPath $INSTDIR${CB_SHARE_CB}
		SetOverwrite on
		File ${CB_BASE}${CB_SHARE_CB}\EditorTweaks.zip
		SetOutPath $INSTDIR${CB_PLUGINS}
		File ${CB_BASE}${CB_PLUGINS}\EditorTweaks.dll
		WriteRegStr HKCU "${REGKEY}\Components" "Editor tweaks plugin" 1
	SectionEnd

    Section /o "EnvVars plugin" SEC_ENVVARS
        SectionIn 1 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\envvars.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\envvars.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\envvars.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\envvars-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "EnvVars plugin" 1
    SectionEnd

    Section /o "File Manager plugin" SEC_FILEMANAGER
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\FileManager.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\FileManager.dll
        WriteRegStr HKCU "${REGKEY}\Components" "File Manager plugin" 1
    SectionEnd
	
	Section /o "Fortran Project plugin" SEC_FORTRANPROJECT
		SectionIn 1
		SetOutPath $INSTDIR${CB_SHARE_CB}
		SetOverwrite on
		File ${CB_BASE}${CB_SHARE_CB}\FortranProject.zip
		SetOutPath $INSTDIR${CB_PLUGINS}
		File ${CB_BASE}${CB_PLUGINS}\FortranProject.dll
		SetOutPath $INSTDIR${CB_IMAGES}
#		File ${CB_BASE}${CB_IMAGES}\fproject*.png
#		SetOutPath $INSTDIR${CB_IMAGES}\16x16
#		File ${CB_BASE}${CB_IMAGES}\16x16\fproject*.png
		SetOutPath $INSTDIR${CB_IMAGES}\fortranproject
		File ${CB_BASE}${CB_IMAGES}\fortranproject\*.f90
		File ${CB_BASE}${CB_IMAGES}\fortranproject\*.png
		WriteRegStr HKCU "${REGKEY}\Components" "Fortran Project plugin" 1
	SectionEnd

    Section /o "HeaderFixUp plugin" SEC_HEADERFIXUP
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\headerfixup.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\headerfixup.dll
        WriteRegStr HKCU "${REGKEY}\Components" "HeaderFixUp plugin" 1
    SectionEnd

    Section /o "Help plugin" SEC_HELP
        SectionIn 1 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\help_plugin.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\help_plugin.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\help-plugin.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\help-plugin-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "Help plugin" 1
    SectionEnd

    Section /o "HexEditor plugin" SEC_HEXEDITOR
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\HexEditor.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\HexEditor.dll
        WriteRegStr HKCU "${REGKEY}\Components" "HexEditor plugin" 1
    SectionEnd

    Section /o "IncrementalSearch plugin" SEC_INCREMENTALSEARCH
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\IncrementalSearch.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\IncrementalSearch.dll
        WriteRegStr HKCU "${REGKEY}\Components" "IncrementalSearch plugin" 1
    SectionEnd

    Section /o "Key Binder plugin" SEC_KEYBINDER
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\keybinder.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\keybinder.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\onekeytobindthem.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\onekeytobindthem-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "Key Binder plugin" 1
    SectionEnd

    Section /o "Koders plugin" SEC_KODERS
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\cb_koders.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\cb_koders.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Koders plugin" 1
    SectionEnd

    Section /o "Lib Finder plugin" SEC_LIBFINDER
        SectionIn 1 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\lib_finder.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\lib_finder.dll
        SetOutPath $INSTDIR${CB_SHARE_CB}\lib_finder
        File ${CB_BASE}${CB_SHARE_CB}\lib_finder\*.xml
        WriteRegStr HKCU "${REGKEY}\Components" "Lib Finder plugin" 1
    SectionEnd

 	Section /o "ListToolBox plugin" SEC_LISTTOOLBOX
		SectionIn 1
		SetOutPath $INSTDIR${CB_SHARE_CB}
		SetOverwrite on
		File ${CB_BASE}${CB_SHARE_CB}\ListToolbox.zip
		SetOutPath $INSTDIR${CB_PLUGINS}
		File ${CB_BASE}${CB_PLUGINS}\ListToolbox.dll
		WriteRegStr HKCU "${REGKEY}\Components" "ListToolbox plugin" 1
	SectionEnd

   Section /o "MouseSap plugin" SEC_MOUSESAP
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\MouseSap.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\MouseSap.dll
        WriteRegStr HKCU "${REGKEY}\Components" "MouseSap plugin" 1
    SectionEnd

    Section /o "Nassi Shneiderman plugin" SEC_NASSI
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\NassiShneiderman.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\NassiShneiderman.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Nassi Shneiderman plugin" 1
    SectionEnd

    Section /o "Tools+ plugin" SEC_TOOLSPLUS
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\ToolsPlus.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\ToolsPlus.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Tools+ plugin" 1
    SectionEnd

    Section /o "Profiler plugin" SEC_PROFILER
        SectionIn 1 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\Profiler.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\Profiler.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\profiler.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\profiler-off.png
        WriteRegStr HKCU "${REGKEY}\Components" "Profiler plugin" 1
    SectionEnd

    Section /o "RegEx Testbed plugin" SEC_REGEXTESTBED
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\RegExTestbed.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\RegExTestbed.dll
        WriteRegStr HKCU "${REGKEY}\Components" "RegEx Testbed plugin" 1
    SectionEnd

    Section /o "Reopen Editor plugin" SEC_REOPEN
        SectionIn 1 2 3 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\ReopenEditor.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\ReopenEditor.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Reopen Editor plugin" 1
    SectionEnd

    Section /o "Exporter plugin" SEC_EXPORTER
        SectionIn 1 3 4
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\Exporter.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\Exporter.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Exporter plugin" 1
    SectionEnd

    SectionGroup "Online spell checking" SECGRP_SPELLING
		Section /o "Spelling plugin" SEC_SPELLING
			SectionIn 1
			SetOutPath $INSTDIR${CB_SHARE_CB}
			SetOverwrite on
			File ${CB_BASE}${CB_SHARE_CB}\SpellChecker.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SpellChecker.dll
			SetOutPath $INSTDIR${CB_IMG_SETTINGS}
			File ${CB_BASE}${CB_IMG_SETTINGS}\spellchecker.png
			File ${CB_BASE}${CB_IMG_SETTINGS}\spellchecker-off.png
			SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
			File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\OnlineSpellChecking.xml
			File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\disabled.png
			WriteRegStr HKCU "${REGKEY}\Components" "Spelling plugin" 1
		SectionEnd
		SectionGroup "Dictionaries" SECGRP_SPELLING_DIC
			Section /o "Dutch" SEC_SPELLING_DIC_NL_NL
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\nl_NL.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\nl_NL.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\nl_NL.png
			SectionEnd
			Section /o "English (UK)" SEC_SPELLING_DIC_EN_UK
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\en_GB.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\en_GB.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\en_GB.png
			SectionEnd
			Section "English (US)" SEC_SPELLING_DIC_EN_US
				SectionIn 1 RO
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\en_US.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\en_US.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\en_US.png
			SectionEnd
			Section /o "French" SEC_SPELLING_DIC_FR_FR
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\fr_FR.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\fr_FR.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\fr_FR.png
			SectionEnd
			Section /o "German" SEC_SPELLING_DIC_DE_DE
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\de_DE.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\de_DE.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\de_DE.png
			SectionEnd
			Section /o "Italian" SEC_SPELLING_DIC_IT_IT
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\it_IT.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\it_IT.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\it_IT.png
			SectionEnd
			Section /o "Portuguese (Portugal)" SEC_SPELLING_DIC_PT_PT
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\pt_PT.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\pt_PT.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\pt_PT.png
			SectionEnd
			Section /o "Portuguese (Brasil)" SEC_SPELLING_DIC_PT_BR
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\pt_BR.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\pt_BR.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\pt_BR.png
			SectionEnd
			Section /o "Spanish" SEC_SPELLING_DIC_ES_ES
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\es_ES.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\es_ES.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\es_ES.png
			SectionEnd
			Section /o "Russian" SEC_SPELLING_DIC_RU_RU
				SectionIn 1
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}\SpellChecker
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\ru_RU.aff
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\ru_RU.dic
				File ${CB_BASE}${CB_SHARE_CB}\SpellChecker\ru_RU.png
			SectionEnd
			Section "" PRIVSEC_SPELLING_TOGGLESTATE ;hidden section to keep track of state
			SectionEnd
		SectionGroupEnd
    SectionGroupEnd

	Section /o "Random numbers generator" SEC_RNDGEN
		SectionIn 1 2 3 4
		SetOverwrite on
		SetOutPath $INSTDIR${CB_SHARE_CB}
		File ${CB_BASE}${CB_SHARE_CB}\rndgen.zip
		SetOutPath $INSTDIR${CB_PLUGINS}
		File ${CB_BASE}${CB_PLUGINS}\rndgen.dll
		WriteRegStr HKCU "${REGKEY}\Components" "Random numbers generator" 1
	SectionEnd
	
	SectionGroup "Smart Indentation plugins" SEC_GRP_SMARTINDENT
		Section /o "C++ Smart Indent" SEC_SMARTINDENT_CPP
			SectionIn 1 2 3 4
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentCpp.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentCpp.dll
			WriteRegStr HKCU "${REGKEY}\Components" "C++ Smart Indent" 1
		SectionEnd
		Section /o "Fortran Smart Indent" SEC_SMARTINDENT_FORTRAN
			SectionIn 1
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentFortran.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentFortran.dll
			WriteRegStr HKCU "${REGKEY}\Components" "Fortran Smart Indent" 1
		SectionEnd
		Section /o "Lua Smart Indent" SEC_SMARTINDENT_LUA
			SectionIn 1
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentLua.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentLua.dll
			WriteRegStr HKCU "${REGKEY}\Components" "Lua Smart Indent" 1
		SectionEnd
		Section /o "Pascal Smart Indent" SEC_SMARTINDENT_PASCAL
			SectionIn 1
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentPascal.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentPascal.dll
			WriteRegStr HKCU "${REGKEY}\Components" "Pascal Smart Indent" 1
		SectionEnd
		Section /o "Python Smart Indent" SEC_SMARTINDENT_PYTHON
			SectionIn 1
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentPython.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentPython.dll
			WriteRegStr HKCU "${REGKEY}\Components" "Python Smart Indent" 1
		SectionEnd
		Section /o "VHDL Smart Indent" SEC_SMARTINDENT_VHDL
			SectionIn 1
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentHDL.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentHDL.dll
			WriteRegStr HKCU "${REGKEY}\Components" "VHDL Smart Indent" 1
		SectionEnd
		Section /o "XML Smart Indent" SEC_SMARTINDENT_XML
			SectionIn 1
			SetOverwrite on
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\SmartIndentXML.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\SmartIndentXML.dll
			WriteRegStr HKCU "${REGKEY}\Components" "XML Smart Indent" 1
		SectionEnd
	SectionGroupEnd
	
    Section /o "SymTab plugin" SEC_SYMTAB
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\SymTab.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\SymTab.dll
        WriteRegStr HKCU "${REGKEY}\Components" "SymTab plugin" 1
    SectionEnd

    Section /o "ThreadSearch plugin" SEC_THREADSEARCH
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\ThreadSearch.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\ThreadSearch.dll
        SetOutPath $INSTDIR${CB_IMG_SETTINGS}
        File ${CB_BASE}${CB_IMG_SETTINGS}\ThreadSearch.png
        File ${CB_BASE}${CB_IMG_SETTINGS}\ThreadSearch-off.png
        SetOutPath $INSTDIR${CB_IMAGES}\ThreadSearch
        File ${CB_BASE}${CB_IMAGES}\ThreadSearch\*.png
        SetOutPath $INSTDIR${CB_IMAGES}\ThreadSearch\16x16
        File ${CB_BASE}${CB_IMAGES}\ThreadSearch\16x16\*.png
        SetOutPath $INSTDIR${CB_IMAGES}\ThreadSearch\22x22
        File ${CB_BASE}${CB_IMAGES}\ThreadSearch\22x22\*.png
        WriteRegStr HKCU "${REGKEY}\Components" "ThreadSearch plugin" 1
    SectionEnd

	Section /o "UUID Generator" SEC_UUID
		SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\UUID_Generator.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\UUID_Generator.dll
        WriteRegStr HKCU "${REGKEY}\Components" "UUID Generator" 1
	SectionEnd
	
    Section "Image Editor plugin" SEC_XPMEDITOR
        SectionIn 1
        SetOutPath $INSTDIR${CB_SHARE_CB}
        SetOverwrite on
        File ${CB_BASE}${CB_SHARE_CB}\XPMEditor.zip
        SetOutPath $INSTDIR${CB_PLUGINS}
        File ${CB_BASE}${CB_PLUGINS}\XPMEditor.dll
        WriteRegStr HKCU "${REGKEY}\Components" "Image Editor plugin" 1
    SectionEnd

	SectionGroup "wxSmith RAD for wxWidgets"	SECGRP_WXSMITH
		Section "wxSmith base plugin" SEC_WXSMITH
			SectionIn 1 2
			SetOutPath $INSTDIR
			SetOverwrite on
			File ${CB_BASE}\wxsmithlib.dll
			SetOutPath $INSTDIR${CB_SHARE_CB}
			File ${CB_BASE}${CB_SHARE_CB}\wxsmith.zip
			SetOutPath $INSTDIR${CB_PLUGINS}
			File ${CB_BASE}${CB_PLUGINS}\wxsmith.dll
			SetOutPath $INSTDIR${CB_IMG_SETTINGS}
			File ${CB_BASE}${CB_IMG_SETTINGS}\wxsmith.png
			File ${CB_BASE}${CB_IMG_SETTINGS}\wxsmith-off.png
			SetOutPath $INSTDIR${CB_IMAGES}\wxsmith
			File ${CB_BASE}${CB_IMAGES}\wxsmith\*.png
			WriteRegStr HKCU "${REGKEY}\Components" "wxSmith base plugin" 1
		SectionEnd
		SectionGroup "Components support" SECGRP_WXSMITH_SUPPORT
			Section /o "wxAUI support"	SEC_WXSMITH_AUI
				SectionIn 1 2
				SetOutPath $INSTDIR
				SetOverwrite on
				SetOutPath $INSTDIR${CB_SHARE_CB}
				File ${CB_BASE}${CB_SHARE_CB}\wxSmithAui.zip
				SetOutPath $INSTDIR${CB_PLUGINS}
				File ${CB_BASE}${CB_PLUGINS}\wxSmithAui.dll
				WriteRegStr HKCU "${REGKEY}\Components" "wxAUI support" 1
			SectionEnd
			Section /o "DateTimePicker control support" SEC_WXSMITH_DATETIME
				SectionIn 1
				SetOutPath $INSTDIR${CB_SHARE_CB}
				SetOverwrite on
				File ${CB_BASE}${CB_SHARE_CB}\wxSmithDateTimePicker.zip
				SetOutPath $INSTDIR${CB_PLUGINS}
				File ${CB_BASE}${CB_PLUGINS}\wxSmithDateTimePicker.dll
				WriteRegStr HKCU "${REGKEY}\Components" "DateTimePicker control support" 1
			SectionEnd
			Section /o "Styled text control support" SEC_WXSMITH_STC
				SectionIn 1
				SetOutPath $INSTDIR${CB_SHARE_CB}
				SetOverwrite on
				File ${CB_BASE}${CB_SHARE_CB}\wxSmithSTC.zip
				SetOutPath $INSTDIR${CB_PLUGINS}
				File ${CB_BASE}${CB_PLUGINS}\wxSmithSTC.dll
				WriteRegStr HKCU "${REGKEY}\Components" "Styled text control support" 1
			SectionEnd
			Section /o "Plotting control support" SEC_WXSMITH_PLOT
				SectionIn 1
				SetOutPath $INSTDIR${CB_SHARE_CB}
				SetOverwrite on
				File ${CB_BASE}${CB_SHARE_CB}\wxSmithPlot.zip
				SetOutPath $INSTDIR${CB_PLUGINS}
				File ${CB_BASE}${CB_PLUGINS}\wxSmithPlot.dll
				WriteRegStr HKCU "${REGKEY}\Components" "Plotting control support" 1
			SectionEnd
			Section /o "Embedded Internet Explorer support" SEC_WXSMITH_IEXPLORER
				SectionIn 1
				SetOutPath $INSTDIR${CB_SHARE_CB}
				SetOverwrite on
				File ${CB_BASE}${CB_SHARE_CB}\wxSmithIExplore.zip
				SetOutPath $INSTDIR${CB_PLUGINS}
				File ${CB_BASE}${CB_PLUGINS}\wxSmithIExplore.dll
				WriteRegStr HKCU "${REGKEY}\Components" "Embedded Internet Explorer support" 1
			SectionEnd
			Section /o "Contributed items support"	SEC_WXSMITH_CONTRIB
				SectionIn 1
				SetOutPath $INSTDIR				
				SetOverwrite on
				File ${CB_BASE}\wxchartctrl.dll
				File ${CB_BASE}\wximagepanel.dll
				File ${CB_BASE}\wxkwic.dll
				File ${CB_BASE}\wxled.dll
				File ${CB_BASE}\wxspeedbutton.dll
				File ${CB_BASE}\wxtreelist.dll
				SetOutPath $INSTDIR${CB_SHARE_CB}
				File ${CB_BASE}${CB_SHARE_CB}\wxSmithContribItems.zip
				SetOutPath $INSTDIR${CB_PLUGINS}
				File ${CB_BASE}${CB_PLUGINS}\wxSmithContribItems.dll
				WriteRegStr HKCU "${REGKEY}\Components" "Contributed items support" 1
			SectionEnd
		SectionGroupEnd
		Section "" PRIVSEC_WXSMITH_TOGGLESTATE ;hidden section to keep track of state
		SectionEnd
	SectionGroupEnd

    # C::B contrib plugins end

SectionGroupEnd

Section /o "C::B Share Config" SEC_SHARECONFIG
    SectionIn 1
    SetOutPath $INSTDIR
    SetOverwrite on
    File ${CB_BASE}\cb_share_config.exe
    SetOutPath $SMPROGRAMS\${CB_SM_GROUP}
    CreateShortcut "$SMPROGRAMS\${CB_SM_GROUP}\CB Share Config.lnk" $INSTDIR\cb_share_config.exe
    WriteRegStr HKCU "${REGKEY}\Components" "C::B Share Config" 1
SectionEnd

Section /o "C::B Portable Launcher" SEC_PORTABLE
    SectionIn 1
    SetOutPath $INSTDIR
    SetOverwrite on
    File ${CB_BASE}\CbLauncher.exe
    CreateShortcut "$SMPROGRAMS\${CB_SM_GROUP}\CodeBlocks (Portable).lnk" $INSTDIR\CbLauncher.exe
    WriteRegStr HKCU "${REGKEY}\Components" "C::B Portable Launcher" 1
SectionEnd

!ifdef GCC_BUNDLE
Section "GCC 4.6.1 Compiler Suite for Windows" SEC_GCC
    SectionIn 1 2 3
    SetOutPath $INSTDIR${CB_GCC}
    SetOverwrite on
    File /r ${GCC_BASE}\*.*
    WriteRegStr HKCU "${REGKEY}\Components" "GCC Compiler Suite" 1
SectionEnd
!endif

Section -post SEC_MISC
    WriteRegStr HKCU "${REGKEY}" Path $INSTDIR
    SetOutPath $INSTDIR
    WriteUninstaller $INSTDIR\uninstall.exe
    SetOutPath $SMPROGRAMS\${CB_SM_GROUP}
    CreateShortcut "$SMPROGRAMS\${CB_SM_GROUP}\Uninstall CodeBlocks.lnk" $INSTDIR\uninstall.exe
    WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" DisplayName "CodeBlocks"
    WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" DisplayVersion "${VERSION}"
    WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" Publisher "${COMPANY}"
    WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" URLInfoAbout "${URL}"
    WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" DisplayIcon $INSTDIR\uninstall.exe
    WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" UninstallString $INSTDIR\uninstall.exe
    WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" NoModify 1
    WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks" NoRepair 1
SectionEnd

# Macro for selecting uninstaller sections
!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
    Push $R0
    ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}"
    StrCmp $R0 1 0 next${UNSECTION_ID}
    !insertmacro SelectSection "${UNSECTION_ID}"
    GoTo done${UNSECTION_ID}
next${UNSECTION_ID}:
    !insertmacro UnselectSection "${UNSECTION_ID}"
done${UNSECTION_ID}:
    Pop $R0
!macroend

########################
# Uninstaller sections #
########################

##############################################################################
# Note: Files in the uninstall section in REVERSE ORDER of the installation! #
##############################################################################

!ifdef GCC_BUNDLE
Section "-un.GCC Compiler Suite" UNSEC_GCC
    Delete /REBOOTOK $INSTDIR${CB_GCC}\*.*
    RMDir  /r /REBOOTOK $INSTDIR${CB_GCC}
    DeleteRegValue HKCU "${REGKEY}\Components" "GCC Compiler Suite"
SectionEnd
!endif

Section /o "-un.C::B Portable Launcher" UNSEC_PORTABLE
    Delete /REBOOTOK $INSTDIR\cbLauncher.exe
    Delete /REBOOTOK "$SMPROGRAMS\${CB_SM_GROUP}\CodeBlocks (Portable).lnk"
    DeleteRegValue HKCU "${REGKEY}\Components" "C::B Portable Launcher"
SectionEnd

Section /o "-un.C::B Share Config" UNSEC_SHARECONFIG
    Delete /REBOOTOK $INSTDIR\cb_share_config.exe
    Delete /REBOOTOK "$SMPROGRAMS\${CB_SM_GROUP}\CB Share Config.lnk"
    DeleteRegValue HKCU "${REGKEY}\Components" "C::B Share Config"
SectionEnd

# C::B contrib plugins begin

Section /o "-un.Auto Versioning plugin" UNSEC_AUTOVERSIONING
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\AutoVersioning.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\AutoVersioning.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Auto Versioning plugin"
SectionEnd

Section /o "-un.Browse Tracker plugin" UNSEC_BROWSETRACKER
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\BrowseTracker.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\BrowseTracker.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Browse Tracker plugin"
SectionEnd

Section /o "-un.Byo Games plugin" UNSEC_BYOGAMES
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\byogames.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\byogames.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Byo Games plugin"
SectionEnd

Section /o "-un.Cccc plugin" UNSEC_CCCC
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\Cccc.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\Cccc.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Cccc plugin"
SectionEnd

Section /o "-un.CodePaste plugin" UNSEC_CODEPASTE
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\CodePaste-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\CodePaste.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\CodePaste.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\CodePaste.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "CodePaste plugin"
SectionEnd

Section /o "-un.Code Snippets plugin" UNSEC_CODESNIPPETS
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\codesnippets\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\codesnippets
    Delete /REBOOTOK $INSTDIR\codesnippets.exe
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\codesnippets.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\codesnippets.zip
    Delete /REBOOTOK "$SMPROGRAMS\${CB_SM_GROUP}\Code Snippets.lnk"
    DeleteRegValue HKCU "${REGKEY}\Components" "Code Snippets plugin"
SectionEnd

Section /o "-un.Code Statistics plugin" UNSEC_CODESTAT
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\codestats-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\codestats.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\codestat.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\codestat.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Code Statistics plugin"
SectionEnd

Section /o "-un.Color Coder plugin" UNSEC_COLORCODER
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\ColorCoder-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\ColorCoder.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\ColorCoder.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\ColorCoder.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Color Coder plugin"
SectionEnd

Section /o "-un.Compile on demand" UNSEC_COMPILEONDEMAND
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\CompileOnDemand.dll
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\CompileOnDemand.zip
	DeleteRegValue HKCU "${REGKEY}\Components" "Compile on demand"
SectionEnd

Section /o "-un.Copy Strings plugin" UNSEC_COPYSTRINGS
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\copystrings.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\copystrings.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Copy Strings plugin"
SectionEnd

Section /o "-un.CppCheck plugin" UNSEC_CPPCHECK
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\CppCheck-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\CppCheck.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\CppCheck.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\CppCheck.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "CppCheck plugin"
SectionEnd

Section /o "-un.DevPak plugin" UNSEC_DEVPAK
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\devpakupdater.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\devpakupdater.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "DevPak plugin"
SectionEnd

Section /o "-un.Diff plugin" UNSEC_CBDIFF
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\cbDiff.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\cbDiff.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Diff plugin"
SectionEnd

Section /o "-un.DoxyBlocks plugin" UNSEC_DOXYBLOCKS
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\DoxyBlocks\16x16\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\DoxyBlocks\16x16
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\DoxyBlocks\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\DoxyBlocks
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\DoxyBlocks-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\DoxyBlocks.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\DoxyBlocks.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\DoxyBlocks.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "DoxyBlocks plugin"
SectionEnd

Section /o "-un.Drag Scroll plugin" UNSEC_DRAGSCROLL
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\dragscroll-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\dragscroll.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\DragScroll.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\DragScroll.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Drag Scroll plugin"
SectionEnd

Section /o "-un.EditorConfig plugin" UNSEC_EDITORCONFIG
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\EditorConfig.dll
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\EditorConfig.zip
	DeleteRegValue HKCU "${REGKEY}\Components" "EditorConfig plugin"
SectionEnd

Section /o "-un.Editor tweaks plugin" UNSEC_EDITORTWEAKS
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\EditorTweaks.dll
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\EditorTweaks.zip
	DeleteRegValue HKCU "${REGKEY}\Components" "Editor tweaks plugin"
SectionEnd

Section /o "-un.EnvVars plugin" UNSEC_ENVVARS
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\envvars-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\envvars.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\envvars.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\envvars.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "EnvVars plugin"
SectionEnd

Section /o "-un.File Manager plugin" UNSEC_FILEMANAGER
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\FileManager.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\FileManager.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "File Manager plugin"
SectionEnd

Section /o "-un.Fortran Project plugin" UNSEC_FORTRANPROJECT
	Delete /REBOOTOK $INSTDIR${CB_IMAGES}\fortranproject\*.png
	Delete /REBOOTOK $INSTDIR${CB_IMAGES}\fortranproject\*.f90
	RMDir /REBOOTOK $INSTDIR${CB_IMAGES}\fortranproject
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\FortranProject.dll
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\FortranProject.zip
	DeleteRegValue HKCU "${REGKEY}\Components" "Fortran Project plugin"
SectionEnd

Section /o "-un.HeaderFixUp plugin" UNSEC_HEADERFIXUP
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\headerfixup.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\headerfixup.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "HeaderFixUp plugin"
SectionEnd

Section /o "-un.Help plugin" UNSEC_HELP
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\help-plugin-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\help-plugin.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\help_plugin.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\help_plugin.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Help plugin"
SectionEnd

Section /o "-un.HexEditor plugin" UNSEC_HEXEDITOR
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\HexEditor.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\HexEditor.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "HexEditor plugin"
SectionEnd

Section /o "-un.IncrementalSearch plugin" UNSEC_INCREMENTALSEARCH
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\IncrementalSearch.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\IncrementalSearch.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "IncrementalSearch plugin"
SectionEnd

Section /o "-un.Key Binder plugin" UNSEC_KEYBINDER
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\onekeytobindthem-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\onekeytobindthem.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\keybinder.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\keybinder.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Key Binder plugin"
SectionEnd

Section /o "-un.Koders plugin" UNSEC_KODERS
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\cb_koders.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\cb_koders.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Koders plugin"
SectionEnd

Section /o "-un.Lib Finder plugin" UNSEC_LIBFINDER
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\lib_finder\*.xml
    RMDir  /REBOOTOK $INSTDIR${CB_SHARE_CB}\lib_finder
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\lib_finder.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\lib_finder.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Lib Finder plugin"
SectionEnd

Section /o "-un.ListToolBox plugin" UNSEC_LISTTOOLBOX
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\ListToolbox.dll
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\ListToolbox.zip
	DeleteRegValue HKCU "${REGKEY}\Components" "ListToolBox plugin"
SectionEnd

Section /o "-un.MouseSap plugin" UNSEC_MOUSESAP
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\MouseSap.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\MouseSap.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "MouseSap plugin"
SectionEnd

Section /o "-un.Nassi Shneiderman plugin" UNSEC_NASSI
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\NassiShneiderman.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\NassiShneiderman.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Nassi Shneiderman plugin"
SectionEnd

Section /o "-un.Tools+ plugin" UNSEC_TOOLSPLUS
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\ToolsPlus.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\ToolsPlus.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Tools+ plugin"
SectionEnd

Section /o "-un.Profiler plugin" UNSEC_PROFILER
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\profiler-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\profiler.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\Profiler.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\Profiler.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Profiler plugin"
SectionEnd

Section /o "-un.RegEx Testbed plugin" UNSEC_REGEXTESTBED
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\RegExTestbed.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\RegExTestbed.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "RegEx Testbed plugin"
SectionEnd

Section /o "-un.RegEx Testbed plugin" UNSEC_REOPEN
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\ReopenEditor.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\ReopenEditor.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Reopen Editor plugin"
SectionEnd

Section /o "-un.Exporter plugin" UNSEC_EXPORTER
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\Exporter.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\Exporter.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Exporter plugin"
SectionEnd

Section /o "-un.Spelling plugin" UNSEC_SPELLING
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SpellChecker\*.aff
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SpellChecker\*.dic
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SpellChecker\*.png
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SpellChecker\OnlineSpellChecking.xml
    RMDir  /REBOOTOK $INSTDIR${CB_SHARE_CB}\SpellChecker
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\SpellChecker-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\SpellChecker.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SpellChecker.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SpellChecker.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Spelling plugin"
SectionEnd

Section /o "-un.Random numbers generator" UNSEC_RNDGEN
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\rndgen.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\rndgen.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "Random numbers generator"
SectionEnd

Section /o "-un.C++ Smart Indent" UNSEC_SMARTINDENT_CPP
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentCpp.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentCpp.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "C++ Smart Indent"
SectionEnd

Section /o "-un.Fortran Smart Indent" UNSEC_SMARTINDENT_FORTRAN
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentFortran.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentFortran.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "Fortran Smart Indent"
SectionEnd

Section /o "-un.Lua Smart Indent" UNSEC_SMARTINDENT_LUA
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentLua.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentLua.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "Lua Smart Indent"
SectionEnd

Section /o "-un.Pascal Smart Indent" UNSEC_SMARTINDENT_PASCAL
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentPascal.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentPascal.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "Pascal Smart Indent"
SectionEnd

Section /o "-un.Python Smart Indent" UNSEC_SMARTINDENT_PYTHON
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentPython.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentPython.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "Python Smart Indent"
SectionEnd

Section /o "-un.VHDL Smart Indent" UNSEC_SMARTINDENT_VHDL
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentHDL.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentHDL.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "VHDL Smart Indent"
SectionEnd

Section /o "-un.XML Smart Indent" UNSEC_SMARTINDENT_XML
	Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SmartIndentXML.zip
	Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SmartIndentXML.dll
	DeleteRegValue HKCU "${REGKEY}\Components" "XML Smart Indent"
SectionEnd

Section /o "-un.SymTab plugin" UNSEC_SYMTAB
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\SymTab.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\SymTab.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "SymTab plugin"
SectionEnd

Section /o "-un.ThreadSearch plugin" UNSEC_THREADSEARCH
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\ThreadSearch\22x22\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\ThreadSearch\22x22
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\ThreadSearch\16x16\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\ThreadSearch\16x16
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\ThreadSearch\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\ThreadSearch
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\ThreadSearch-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\ThreadSearch.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\ThreadSearch.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\ThreadSearch.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "ThreadSearch plugin"
SectionEnd

Section /o "-un.UUID Generator" UNSEC_UUID
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\UUID_Generator.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\UUID_Generator.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "UUID Generator"
SectionEnd

Section /o "-un.Image Editor plugin" UNSEC_XPMEDITOR
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\XPMEditor.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\XPMEditor.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Image Editor plugin"
SectionEnd

Section /o "-un.Contributed items support" UNSEC_WXSMITH_CONTRIB
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxSmithContribItems.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxSmithContribItems.zip
    Delete /REBOOTOK $INSTDIR\wxchartctrl.dll
    Delete /REBOOTOK $INSTDIR\wximagepanel.dll
    Delete /REBOOTOK $INSTDIR\wxkwic.dll
    Delete /REBOOTOK $INSTDIR\wxled.dll
    Delete /REBOOTOK $INSTDIR\wxspeedbutton.dll
    Delete /REBOOTOK $INSTDIR\wxtreelist.dll	
    DeleteRegValue HKCU "${REGKEY}\Components" "Contributed items support"
SectionEnd

Section /o  "-un.Embedded Internet Explorer support" UNSEC_WXSMITH_IEXPLORER
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxSmithIExplore.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxSmithIExplore.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Embedded Internet Explorer support"
SectionEnd

Section /o "-un.Plotting control support" UNSEC_WXSMITH_PLOT
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxSmithPlot.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxSmithPlot.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Plotting control support"
SectionEnd

Section /o "-un.Styled text control support" UNSEC_WXSMITH_STC
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxSmithSTC.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxSmithSTC.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Styled text control support"
SectionEnd

Section /o "-un.DateTimePicker control support" UNSEC_WXSMITH_DATETIME
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxSmithDateTimePicker.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxSmithDateTimePicker.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "DateTimePicker control support"
SectionEnd

Section /o "-un.wxAUI support" UNSEC_WXSMITH_AUI
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxSmithAui.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxSmithAui.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "wxAUI support"
SectionEnd

Section "-un.wxSmith base plugin" UNSEC_WXSMITH
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\wxsmith\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\wxsmith
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\wxsmith-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\wxsmith.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\wxsmith.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\wxsmith.zip
    Delete /REBOOTOK $INSTDIR\wxsmithlib.dll
    DeleteRegValue HKCU "${REGKEY}\Components" "wxSmith base plugin"
SectionEnd

# C::B contrib plugins end

# C::B core plugins begin

Section "-un.Abbreviations plugin" UNSEC_ABBREV
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\abbrev-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\abbrev.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\abbreviations.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\abbreviations.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Abbreviations plugin"
SectionEnd

Section "-un.AStyle plugin" UNSEC_ASTYLE
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\astyle-plugin-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\astyle-plugin.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\astyle.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\astyle.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "AStyle plugin"
SectionEnd

Section "-un.Autosave plugin" UNSEC_AUTOSAVE
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\autosave-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\autosave.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\autosave.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\autosave.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Autosave plugin"
SectionEnd

Section "-un.Class Wizard plugin" UNSEC_CLASSWIZARD
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\classwizard.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\classwizard.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Class Wizard plugin"
SectionEnd

Section "-un.Code Completion plugin" UNSEC_CODECOMPLETION
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\codecompletion-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\codecompletion.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\codecompletion.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\codecompletion.zip
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\codecompletion\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}\codecompletion
    DeleteRegValue HKCU "${REGKEY}\Components" "Code Completion plugin"
SectionEnd

Section "-un.Compiler plugin" UNSEC_COMPILER
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\compiler-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\compiler.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\stop.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\run.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\rebuild.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\compilerun.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\compile.png
	Delete /REBOOTOK $INSTDIR${CB_XML_COMPILERS}\*.xml
	RMDir /r /REBOOTOK $INSTDIR${CB_XML_COMPILERS}
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\compiler.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\compiler.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Compiler plugin"
SectionEnd

Section "-un.Debugger plugin" UNSEC_DEBUGGER
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\debugger-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\debugger.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\dbgstop.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\dbgstep.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\dbgrunto.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\dbgrun.png
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\dbgnext.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\debugger.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\debugger.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Debugger plugin"
SectionEnd

Section "-un.MIME Handler plugin" UNSEC_MIMEHANDLER
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\extensions-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\extensions.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\defaultmimehandler.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\defaultmimehandler.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "MIME Handler plugin"
SectionEnd

Section "-un.Open Files List plugin" UNSEC_OPENFILESLIST
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\openfileslist.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\openfileslist.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Open Files List plugin"
SectionEnd

Section "-un.Projects Importer plugin" UNSEC_PROJECTSIMPORTER
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\projectsimporter.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\projectsimporter.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Projects Importer plugin"
SectionEnd

Section "-un.Scripted Wizard plugin" UNSEC_SCRIPTEDWIZARD
    Delete /REBOOTOK $INSTDIR${CB_WIZARD}\*.*
    RMDir  /r /REBOOTOK $INSTDIR${CB_WIZARD}
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\scriptedwizard.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\scriptedwizard.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "Scripted Wizard plugin"
SectionEnd

Section "-un.ToDo List plugin" UNSEC_TODOLIST
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\todo-off.png
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\todo.png
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\todo.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\todo.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "ToDo List plugin"
SectionEnd

Section "-un.XP Look And Feel plugin" UNSEC_XPLOOKANDFEEL
    Delete /REBOOTOK $INSTDIR${CB_PLUGINS}\xpmanifest.dll
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\xpmanifest.zip
    DeleteRegValue HKCU "${REGKEY}\Components" "XP Look And Feel plugin"
SectionEnd

# C::B core plugins end

# C::B lexers begin

Section "-un.C/C++" UNSEC_CPP
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_rc.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_rc.sample
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_cpp.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_cpp.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "C/C++"
SectionEnd

Section "-un.Objective-C" UNSEC_OBJC
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_objc.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_objc.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Objective-C"
SectionEnd

Section /o "-un.Ada" UNSEC_ADA
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_ada.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_ada.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Ada"
SectionEnd


Section /o "-un.The D Language" UNSEC_D
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_d.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_d.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "The D Language"
SectionEnd

Section /o "-un.Fortran" UNSEC_F
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_f77.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_f77.sample
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_fortran.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_fortran.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Fortran"
SectionEnd

Section /o "-un.Java" UNSEC_JAVA
	Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_java.xml
	Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_java.sample
	DeleteRegValue HKCU "${REGKEY}\Components" "Java"
SectionEnd

Section /o "-un.Pascal" UNSEC_PASCAL
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_pascal.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_pascal.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Pascal"
SectionEnd

Section /o "-un.Smalltalk" UNSEC_SMALLTALK
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_smalltalk.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_smalltalk.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Smalltalk"
SectionEnd

Section "-un.Squirrel" UNSEC_SQ
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_squirrel.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_squirrel.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Squirrel"
SectionEnd

Section /o "-un.Angelscript" UNSEC_AS
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_angelscript.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_angelscript.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Angelscript"
SectionEnd

Section /o "-un.Caml" UNSEC_CAML
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_caml.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_caml.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Caml"
SectionEnd

Section /o "-un.Haskell" UNSEC_HASKELL
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_haskell.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_haskell.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Haskell"
SectionEnd

Section /o "-un.Lisp" UNSEC_LISP
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_lisp.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_lisp.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Lisp"
SectionEnd

Section /o "-un.Lua" UNSEC_LUA
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_lua.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_lua.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Lua"
SectionEnd

Section /o "-un.Python" UNSEC_PY
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_python.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_python.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Python"
SectionEnd

Section /o "-un.Perl" UNSEC_PERL
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_perl.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_perl.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Perl"
SectionEnd

Section /o "-un.Postscript" UNSEC_POSTSCRIPT
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_postscript.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_postscript.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Postscript"
SectionEnd

Section /o "-un.Ruby" UNSEC_RUBY
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_ruby.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_ruby.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Ruby"
SectionEnd

Section /o "-un.VB Script" UNSEC_VB
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_vbscript.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_vbscript.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "VB Script"
SectionEnd

Section /o "-un.Game Monkey" UNSEC_GM
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_gm.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_gm.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Game Monkey"
SectionEnd

Section /o "-un.diff" UNSEC_DIFF
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_diff.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_diff.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "diff"
SectionEnd

Section /o "-un.Makefile" UNSEC_MAKE
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_make.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_make.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "make"
SectionEnd

Section /o "-un.bash script" UNSEC_BASH
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_bash.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_bash.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "bash script"
SectionEnd

Section /o "-un.DOS batch files" UNSEC_DOS
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_batch.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_batch.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "DOS batch files"
SectionEnd

Section "-un.XML" UNSEC_XML
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_xml.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_xml.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "XML"
SectionEnd

Section /o "-un.HTML" UNSEC_HTML
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_html.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_html.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "HTML"
SectionEnd

Section /o "-un.CSS" UNSEC_CSS
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_css.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_css.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "CSS"
SectionEnd

Section /o "-un.LaTeX" UNSEC_LATEX
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_latex.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_latex.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "LaTeX"
SectionEnd

Section /o "-un.GLSL (GLslang)" UNSEC_GLSL
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_glsl.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_glsl.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "GLSL (GLslang)"
SectionEnd

Section /o "-un.nVidia Cg" UNSEC_CG
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_cg.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_cg.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "nVidia Cg"
SectionEnd

Section /o "-un.Ogre" UNSEC_OGRE
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_OgreMaterial.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_OgreMaterial.sample
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_OgreCompositor.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_OgreCompositor.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Ogre"
SectionEnd

Section /o "-un.Hitachi Assembler" UNSEC_HITACHI
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_hitasm.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_hitasm.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Hitachi Assembler"
SectionEnd

Section /o "-un.VHDL" UNSEC_VHDL
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_vhdl.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_vhdl.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "VHDL"
SectionEnd

Section /o "-un.Verilog" UNSEC_VERILOG
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_verilog.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_verilog.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Verilog"
SectionEnd

Section /o "-un.MASM" UNSEC_MASM
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_masm.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_masm.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "MASM"
SectionEnd

Section /o "-un.NSIS installer script" UNSEC_NSIS
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_nsis.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_nsis.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "NSIS installer script"
SectionEnd

Section /o "-un.CMake" UNSEC_CMAKE
	Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_cmake.xml
	Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_cmake.sample
	DeleteRegValue HKCU "${REGKEY}\Components" "CMake"
SectionEnd

Section /o "-un.Matlab" UNSEC_MATLAB
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_matlab.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_matlab.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Matlab"
SectionEnd

Section /o "-un.Sql" UNSEC_SQL
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_sql.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_sql.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Sql"
SectionEnd

Section /o "-un.XBase" UNSEC_XBASE
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_prg.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_prg.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "XBase"
SectionEnd

Section /o "-un.Property file" UNSEC_PROP
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_properties.xml
    Delete /REBOOTOK $INSTDIR${CB_LEXERS}\lexer_properties.sample
    DeleteRegValue HKCU "${REGKEY}\Components" "Property file"
SectionEnd

# C::B lexers end

# C::B library begin

Section /o "-un.Explorer Library" UNSEC_EXPLORERLIBRARY
${If} ${AtLeastWin7}
	Delete /REBOOTOK '${EXPLORER_LIBRARY}'
	Delete /REBOOTOK $INSTDIR${CB_IMAGES}\CodeBlocks-library.ico
    DeleteRegValue HKCU "${REGKEY}\Components" "Explorer Library"
${EndIf}
SectionEnd

# C::B library end

# C::B shortcuts begin

Section /o "-un.Quick Launch Shortcut" UNSEC_QUICKLAUNCHSHORTCUT
    Delete /REBOOTOK "$QUICKLAUNCH\CodeBlocks.lnk"
    DeleteRegValue HKCU "${REGKEY}\Components" "Quick Launch Shortcut"
SectionEnd

Section /o "-un.Desktop Shortcut" UNSEC_DESKTOPSHORTCUT
    Delete /REBOOTOK "$DESKTOP\CodeBlocks.lnk"
    DeleteRegValue HKCU "${REGKEY}\Components" "Desktop Shortcut"
SectionEnd

Section /o "-un.Program Shortcut" UNSEC_PROGRAMSHORTCUT
    Delete "$SMPROGRAMS\${CB_SM_GROUP}\CodeBlocks.lnk"
    DeleteRegValue HKCU "${REGKEY}\Components" "Program Shortcut"
SectionEnd

Section /o "-un.Program Shortcut All Users" UNSEC_PROGRAMSHORTCUT_ALL
    SetShellVarContext all
    Delete "$SMPROGRAMS\${CB_SM_GROUP}\CodeBlocks.lnk"
    SetShellVarContext current
    DeleteRegValue HKCU "${REGKEY}\Components" "Program Shortcut All Users"
SectionEnd

# C::B shortcuts end

# C::B documentation begin

Section /o "-un.D Language Specification 2.0" UNSEC_DOCS_D2REFERENCE
	Delete /REBOOTOK $INSTDIR${CB_DOCS}\d2.chw
	Delete /REBOOTOK $INSTDIR${CB_DOCS}\d2.chm
	DeleteRegValue HKCU "${REGKEY}\Components" "D Language Specification 2.0"
SectionEnd

Section /o "-un.C++ Reference" UNSEC_DOCS_CPPREFERENCE
	Delete /REBOOTOK $INSTDIR${CB_DOCS}\cpp_reference.chw
	Delete /REBOOTOK $INSTDIR${CB_DOCS}\cpp_reference.chm
	DeleteRegValue HKCU "${REGKEY}\Components" "C++ Reference"
SectionEnd

# C::B documentation end

# C::B core begin

Section "-un.Core Files (required)" UNSEC_CORE
    Delete /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMG_SETTINGS}
    Delete /REBOOTOK $INSTDIR${CB_IMG_16}\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMG_16}
    Delete /REBOOTOK $INSTDIR${CB_IMAGES}\*.png
    RMDir  /REBOOTOK $INSTDIR${CB_IMAGES}
    Delete /REBOOTOK $INSTDIR${CB_TEMPLATES}\*.*
    # Just try the following, if it fails that's ok
    # cause the post section will handle this.
    RMDir            $INSTDIR${CB_TEMPLATES}
    Delete /REBOOTOK $INSTDIR${CB_SCRIPTS}\stl-views-1.0.3.gdb
    Delete /REBOOTOK $INSTDIR${CB_SCRIPTS}\*.script
    # Just try the following, if it fails that's ok
    # cause the post section will handle this.
    RMDir            $INSTDIR${CB_SCRIPTS}
    RMDir            $INSTDIR${CB_LEXERS}
    RMDir            $INSTDIR${CB_PLUGINS}
    Delete /REBOOTOK $INSTDIR${CB_DOCS}\index.ini
    Delete /REBOOTOK $INSTDIR${CB_DOCS}\codeblocks.chm
    Delete /REBOOTOK $INSTDIR${CB_DOCS}\codeblocks.pdf
    RMDir  /REBOOTOK $INSTDIR${CB_DOCS}
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\stl-views-1.0.3.gdb
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\resources.zip
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\manager_resources.zip
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\tips.txt
    Delete /REBOOTOK $INSTDIR${CB_SHARE_CB}\start_here.zip
    RMDir  /REBOOTOK $INSTDIR${CB_SHARE_CB}
    RMDir  /REBOOTOK $INSTDIR${CB_SHARE}
	Delete /REBOOTOK $INSTDIR\mingwm10.dll
	Delete /REBOOTOK $INSTDIR\exchndl.dll
    Delete /REBOOTOK $INSTDIR\codeblocks.exe
    Delete /REBOOTOK $INSTDIR\codeblocks.dll
    Delete /REBOOTOK $INSTDIR\cb_console_runner.exe
    Delete /REBOOTOK $INSTDIR\wxSTEdit.dll
    Delete /REBOOTOK $INSTDIR\wxSTC.dll
    Delete /REBOOTOK $INSTDIR\wxpropgrid.dll
    Delete /REBOOTOK $INSTDIR\wxflatnotebook.dll
    Delete /REBOOTOK $INSTDIR\wxcustombutton.dll
    Delete /REBOOTOK $INSTDIR\wxmsw28u_gcc_481tdm.dll
    DeleteRegValue HKCU "${REGKEY}\Components" "Core Files (required)"
SectionEnd

# C::B core end

Section -un.post UNSEC_MISC
	SetShellVarContext all
    Delete "$SMPROGRAMS\${CB_SM_GROUP}\Uninstall CodeBlocks.lnk"
    RMDir  $SMPROGRAMS\${CB_SM_GROUP}
	SetShellVarContext current
    Delete "$SMPROGRAMS\${CB_SM_GROUP}\Uninstall CodeBlocks.lnk"
    RMDir  $SMPROGRAMS\${CB_SM_GROUP}
    DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CodeBlocks"
	SetShellVarContext all
    Delete /REBOOTOK $INSTDIR\uninstall.exe
	SetShellVarContext current

    DeleteRegValue HKCU "${REGKEY}" Path
    DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"
    DeleteRegKey /IfEmpty HKCU "${REGKEY}"

	SetShellVarContext all
	RMDir /REBOOTOK $INSTDIR

    # If $INSTDIR was already removed, skip these next steps
    IfFileExists $INSTDIR 0 instDirOperated
		# Check if this uninstallation was triggered by another installer first.
		# If so, skip the removal.
		IfFileExists "$INSTDIR\uninstall.exe" noRMDir 0
        # It appears $INSTDIR is not empty, thus it could not be removed.
        # Ask the user to probably force the removal.
        MessageBox MB_YESNO|MB_ICONQUESTION \
            "Remove all files in the Code::Blocks directory?$\r$\n(If you have anything you want to keep, click No.)" \
            /SD IDNO IDYES yesRMDir IDNO noRMDir
yesRMDir:
		SetShellVarContext all
        # Try to delete all remaining files and finally $INSTDIR recursively
        Delete $INSTDIR\*.*
        RMDir /r $INSTDIR
        IfFileExists $INSTDIR 0 instDirOperated
            MessageBox MB_OK|MB_ICONEXCLAMATION \
                "Warning: $INSTDIR could not be removed.$\r$\nMake sure your account has the required permissions." \
                /SD IDOK
noRMDir:
        # If user selected "no" -> skip the next steps
instDirOperated:
    # fall through
SectionEnd

Function un.RemoveCBConfigurationFolder
	SetShellVarContext current
    # Try to delete all files and finally the config folder recursively
    Delete $APPDATA\CodeBlocks\*.*
    SetOutPath $APPDATA
    RMDir /r $APPDATA\CodeBlocks
    IfFileExists $APPDATA\CodeBlocks 0 configOperated
       MessageBox MB_OK|MB_ICONEXCLAMATION \
           "Warning: $APPDATA\CodeBlocks could not be removed.$\r$\nMake sure your account has the required permissions." \
           /SD IDOK
configOperated:
    # fall through
FunctionEnd

#######################
# Installer functions #
#######################

Function .onInit
	# Check if CodeBlocks is still installed and propose uninstalling first to the user
	ReadRegStr $0 HKCU "${REGKEY}" "Path"
	StrCmp $0 "" startInstall
	MessageBox MB_YESNO|MB_ICONEXCLAMATION \
	"Code::Blocks is already installed.$\r$\nDo you wish to uninstall it before continuing?" \
	IDYES uninstallOld IDNO startInstall
uninstallOld:
	ClearErrors
	ExecWait '"$0\uninstall.exe" _?=$0'
	RMDir /r "$0"
startInstall:
	# A user running with UAC enabled admin rights may install to PROGRAMFILES by default.
	ClearErrors
	UserInfo::GetAccountType
	Pop $0
	StrCmp $0 "Admin" 0 installDirReady
		StrCpy $INSTDIR "$PROGRAMFILES\CodeBlocks"
installDirReady:
    InitPluginsDir
	# Display splash screen
    Push $R1
    File /oname=$PLUGINSDIR\spltmp.bmp ${CB_SPLASH}
    advsplash::show 1000 600 400 -1 $PLUGINSDIR\spltmp
    Pop $R1
	# Set US Dictionary as read-only by default
	SectionSetFlags ${SEC_SPELLING_DIC_EN_US} ${SF_RO}
	!insertmacro SetSectionInInstType ${SEC_SPELLING_DIC_EN_US} 1
	# Disable and set as read-only the explorer library option for Win < 7.
	${If} ${AtMostWin2008}
		SectionSetFlags ${SEC_EXPLORERLIBRARY} ${SF_RO}
		!insertmacro ClearSectionInInstType ${SEC_EXPLORERLIBRARY} 4
		!insertmacro ClearSectionInInstType ${SEC_EXPLORERLIBRARY} 3
		!insertmacro ClearSectionInInstType ${SEC_EXPLORERLIBRARY} 2
		!insertmacro ClearSectionInInstType ${SEC_EXPLORERLIBRARY} 1
	${EndIf}
	# Default selection in "Program shortcut" radio group
	Var /GLOBAL "DefaultShortcutChoice"
	StrCpy $DefaultShortcutChoice ${SEC_PROGRAMSHORTCUT}
	SetCurInstType 1 # Set "Standard" as the default installation type
FunctionEnd

Function .onSelChange
	#
	# Mutually exclusive sections are handled here:
	#
	# Radio buttons group for "Program shortcut"
	!insertmacro StartRadioButtons $DefaultShortcutChoice
		!insertmacro RadioButton ${SEC_PROGRAMSHORTCUT}
		!insertmacro RadioButton ${SEC_PROGRAMSHORTCUT_ALL}
	!insertmacro EndRadioButtons
	# 
	# Groups with compulsory sections handled here:
	#
	!define /math SECFLAGS_SELRO ${SF_SELECTED} | ${SF_RO}
	# US English is a compulsory SpellChecker dictionary.
	${IfNot} ${SectionIsSelected} ${PRIVSEC_SPELLING_TOGGLESTATE}
	${AndIf} ${SectionIsReadOnly} ${SEC_SPELLING_DIC_EN_US}
		!insertmacro ClearSectionFlag ${SEC_SPELLING_DIC_EN_US} ${SECFLAGS_SELRO}
	${EndIf}
	${If}   ${SectionIsSelected} ${SEC_SPELLING}
		!insertmacro SetSectionFlag ${SEC_SPELLING_DIC_EN_US} ${SECFLAGS_SELRO} 
	${Else}
		!insertmacro ClearSectionFlag ${SEC_SPELLING_DIC_EN_US} ${SF_RO}
	${EndIf}
	${If} ${SectionIsSelected} ${SEC_SPELLING_DIC_EN_US}
		!insertmacro SelectSection ${PRIVSEC_SPELLING_TOGGLESTATE}
	${Else}
		!insertmacro UnselectSection ${PRIVSEC_SPELLING_TOGGLESTATE}
	${EndIf}
	# wxSmith is needed for its components to become usable.
	${IfNot} ${SectionIsSelected} ${PRIVSEC_WXSMITH_TOGGLESTATE}
	${AndIf} ${SectionIsReadOnly} ${SEC_WXSMITH}
		!insertmacro ClearSectionFlag ${SEC_WXSMITH} ${SECFLAGS_SELRO}
	${EndIf}
	${If}   ${SectionIsSelected} ${SEC_WXSMITH_AUI}
	${OrIf} ${SectionIsSelected} ${SEC_WXSMITH_DATETIME}
	${OrIf} ${SectionIsSelected} ${SEC_WXSMITH_STC}
	${OrIf} ${SectionIsSelected} ${SEC_WXSMITH_PLOT}
	${OrIf} ${SectionIsSelected} ${SEC_WXSMITH_IEXPLORER}
	${OrIf} ${SectionIsSelected} ${SEC_WXSMITH_CONTRIB}
		!insertmacro SetSectionFlag ${SEC_WXSMITH} ${SECFLAGS_SELRO}
	${Else}
		!insertmacro ClearSectionFlag ${SEC_WXSMITH} ${SF_RO}
	${EndIf}
	${If} ${SectionIsSelected} ${SEC_WXSMITH}
		!insertmacro SelectSection ${PRIVSEC_WXSMITH_TOGGLESTATE}
	${Else}
		!insertmacro UnselectSection ${PRIVSEC_WXSMITH_TOGGLESTATE}
	${EndIf}
	!undef SECFLAGS_SELRO
FunctionEnd

#########################
# Uninstaller functions #
#########################

Function un.onInit
    ReadRegStr $INSTDIR HKCU "${REGKEY}" Path

    !insertmacro SELECT_UNSECTION "Core Files (required)"      ${UNSEC_CORE}

    !insertmacro SELECT_UNSECTION "Program Shortcut"           ${UNSEC_PROGRAMSHORTCUT}
    !insertmacro SELECT_UNSECTION "Program Shortcut All Users" ${UNSEC_PROGRAMSHORTCUT_ALL}
    !insertmacro SELECT_UNSECTION "Desktop Shortcut"           ${UNSEC_DESKTOPSHORTCUT}
    !insertmacro SELECT_UNSECTION "Quick Launch Shortcut"      ${UNSEC_QUICKLAUNCHSHORTCUT}
	!insertmacro SELECT_UNSECTION "Explorer Library"		   ${UNSEC_EXPLORERLIBRARY}
	
	!insertmacro SELECT_UNSECTION "C++ Reference" 			   ${UNSEC_DOCS_CPPREFERENCE}
	!insertmacro SELECT_UNSECTION "D Language Specification 2.0" ${UNSEC_DOCS_D2REFERENCE}
	
    !insertmacro SELECT_UNSECTION "C/C++"                      ${UNSEC_CPP}
	!insertmacro SELECT_UNSECTION "Objective-C"				   ${UNSEC_OBJC}
    !insertmacro SELECT_UNSECTION "Ada"                        ${UNSEC_ADA}
    !insertmacro SELECT_UNSECTION "The D Language"             ${UNSEC_D}
    !insertmacro SELECT_UNSECTION "Fortran"                    ${UNSEC_F}
	!insertmacro SELECT_UNSECTION "Java"					   ${UNSEC_JAVA}
    !insertmacro SELECT_UNSECTION "Pascal"                     ${UNSEC_PASCAL}
    !insertmacro SELECT_UNSECTION "Smalltalk"                  ${UNSEC_SMALLTALK}
    !insertmacro SELECT_UNSECTION "Squirrel"                   ${UNSEC_SQ}
    !insertmacro SELECT_UNSECTION "Angelscript"                ${UNSEC_AS}
    !insertmacro SELECT_UNSECTION "Caml"                       ${UNSEC_CAML}
    !insertmacro SELECT_UNSECTION "Haskell"                    ${UNSEC_HASKELL}
    !insertmacro SELECT_UNSECTION "Lisp"                       ${UNSEC_LISP}
    !insertmacro SELECT_UNSECTION "Lua"                        ${UNSEC_LUA}
    !insertmacro SELECT_UNSECTION "Python"                     ${UNSEC_PY}
    !insertmacro SELECT_UNSECTION "Perl"                       ${UNSEC_PERL}
    !insertmacro SELECT_UNSECTION "Postscript"                 ${UNSEC_POSTSCRIPT}
    !insertmacro SELECT_UNSECTION "Ruby"                       ${UNSEC_RUBY}
    !insertmacro SELECT_UNSECTION "VB Script"                  ${UNSEC_VB}
    !insertmacro SELECT_UNSECTION "Game Monkey"                ${UNSEC_GM}
    !insertmacro SELECT_UNSECTION "diff"                       ${UNSEC_DIFF}
    !insertmacro SELECT_UNSECTION "makefile"                   ${UNSEC_MAKE}
    !insertmacro SELECT_UNSECTION "bash script"                ${UNSEC_BASH}
    !insertmacro SELECT_UNSECTION "DOS batch files"            ${UNSEC_DOS}
    !insertmacro SELECT_UNSECTION "XML"                        ${UNSEC_XML}
    !insertmacro SELECT_UNSECTION "HTML"                       ${UNSEC_HTML}
    !insertmacro SELECT_UNSECTION "CSS"                        ${UNSEC_CSS}
    !insertmacro SELECT_UNSECTION "LaTeX"                      ${UNSEC_LATEX}
    !insertmacro SELECT_UNSECTION "GLSL (GLSlang)"             ${UNSEC_GLSL}
    !insertmacro SELECT_UNSECTION "nVidia Cg"                  ${UNSEC_CG}
    !insertmacro SELECT_UNSECTION "Ogre"                       ${UNSEC_OGRE}
    !insertmacro SELECT_UNSECTION "Hitachi assembler"          ${UNSEC_HITACHI}
    !insertmacro SELECT_UNSECTION "VHDL"                       ${UNSEC_VHDL}
    !insertmacro SELECT_UNSECTION "Verilog"                    ${UNSEC_VERILOG}
    !insertmacro SELECT_UNSECTION "MASM"                       ${UNSEC_MASM}
    !insertmacro SELECT_UNSECTION "NSIS installer script"      ${UNSEC_NSIS}
	!insertmacro SELECT_UNSECTION "CMake"					   ${UNSEC_CMAKE}
    !insertmacro SELECT_UNSECTION "MATLAB"                     ${UNSEC_MATLAB}
    !insertmacro SELECT_UNSECTION "Sql"                        ${UNSEC_SQL}
    !insertmacro SELECT_UNSECTION "XBASE"                      ${UNSEC_XBASE}
    !insertmacro SELECT_UNSECTION "Property file"              ${UNSEC_PROP}

    !insertmacro SELECT_UNSECTION "Abbreviations plugin"       ${UNSEC_ABBREV}
    !insertmacro SELECT_UNSECTION "AStyle plugin"              ${UNSEC_ASTYLE}
    !insertmacro SELECT_UNSECTION "Autosave plugin"            ${UNSEC_AUTOSAVE}
    !insertmacro SELECT_UNSECTION "Class Wizard plugin"        ${UNSEC_CLASSWIZARD}
    !insertmacro SELECT_UNSECTION "Code Completion plugin"     ${UNSEC_CODECOMPLETION}
    !insertmacro SELECT_UNSECTION "Compiler plugin"            ${UNSEC_COMPILER}
    !insertmacro SELECT_UNSECTION "Debugger plugin"            ${UNSEC_DEBUGGER}
    !insertmacro SELECT_UNSECTION "MIME Handler plugin"        ${UNSEC_MIMEHANDLER}
    !insertmacro SELECT_UNSECTION "Open Files List plugin"     ${UNSEC_OPENFILESLIST}
    !insertmacro SELECT_UNSECTION "Projects Importer plugin"   ${UNSEC_PROJECTSIMPORTER}
    !insertmacro SELECT_UNSECTION "Scripted Wizard plugin"     ${UNSEC_SCRIPTEDWIZARD}
    !insertmacro SELECT_UNSECTION "ToDo List plugin"           ${UNSEC_TODOLIST}
    !insertmacro SELECT_UNSECTION "XP Look And Feel plugin"    ${UNSEC_XPLOOKANDFEEL}

    !insertmacro SELECT_UNSECTION "Auto Versioning plugin"     ${UNSEC_AUTOVERSIONING}
    !insertmacro SELECT_UNSECTION "Browse Tracker plugin"      ${UNSEC_BROWSETRACKER}
    !insertmacro SELECT_UNSECTION "Byo Games plugin"           ${UNSEC_BYOGAMES}
    !insertmacro SELECT_UNSECTION "Cccc plugin"                ${UNSEC_CCCC}
    !insertmacro SELECT_UNSECTION "CodePaste plugin"           ${UNSEC_CODEPASTE}
    !insertmacro SELECT_UNSECTION "Code Snippets plugin"       ${UNSEC_CODESNIPPETS}
    !insertmacro SELECT_UNSECTION "Code Statistics plugin"     ${UNSEC_CODESTAT}
    !insertmacro SELECT_UNSECTION "Color Coder plugin"         ${UNSEC_COLORCODER}
	!insertmacro SELECT_UNSECTION "Compile on demand"		   ${UNSEC_COMPILEONDEMAND}
    !insertmacro SELECT_UNSECTION "Copy Strings plugin"        ${UNSEC_COPYSTRINGS}
    !insertmacro SELECT_UNSECTION "CppCheck plugin"            ${UNSEC_CPPCHECK}
    !insertmacro SELECT_UNSECTION "DevPak plugin"              ${UNSEC_DEVPAK}
    !insertmacro SELECT_UNSECTION "Diff plugin"                ${UNSEC_CBDIFF}
    !insertmacro SELECT_UNSECTION "DoxyBlocks plugin"          ${UNSEC_DOXYBLOCKS}
    !insertmacro SELECT_UNSECTION "Drag Scroll plugin"         ${UNSEC_DRAGSCROLL}
	!insertmacro SELECT_UNSECTION "EditorConfig plugin"		   ${UNSEC_EDITORCONFIG}
	!insertmacro SELECT_UNSECTION "Editor tweaks plugin"       ${UNSEC_EDITORTWEAKS}
    !insertmacro SELECT_UNSECTION "EnvVars plugin"             ${UNSEC_ENVVARS}
    !insertmacro SELECT_UNSECTION "File Manager plugin"        ${UNSEC_FILEMANAGER}
	!insertmacro SELECT_UNSECTION "Fortran Project plugin"	   ${UNSEC_FORTRANPROJECT}
    !insertmacro SELECT_UNSECTION "HeaderFixUp plugin"         ${UNSEC_HEADERFIXUP}
    !insertmacro SELECT_UNSECTION "Help plugin"                ${UNSEC_HELP}
    !insertmacro SELECT_UNSECTION "HexEditor plugin"           ${UNSEC_HEXEDITOR}
    !insertmacro SELECT_UNSECTION "IncrementalSearch plugin"   ${UNSEC_INCREMENTALSEARCH}
    !insertmacro SELECT_UNSECTION "Key Binder plugin"          ${UNSEC_KEYBINDER}
    !insertmacro SELECT_UNSECTION "Koders plugin"              ${UNSEC_KODERS}
    !insertmacro SELECT_UNSECTION "Lib Finder plugin"          ${UNSEC_LIBFINDER}
	!insertmacro SELECT_UNSECTION "ListToolBox plugin" 	       ${UNSEC_LISTTOOLBOX}
    !insertmacro SELECT_UNSECTION "MouseSap plugin"            ${UNSEC_MOUSESAP}
    !insertmacro SELECT_UNSECTION "Nassi Shneiderman plugin"   ${UNSEC_NASSI}
    !insertmacro SELECT_UNSECTION "Tools+ plugin"              ${UNSEC_TOOLSPLUS}
    !insertmacro SELECT_UNSECTION "Profiler plugin"            ${UNSEC_PROFILER}
    !insertmacro SELECT_UNSECTION "RegEx Testbed plugin"       ${UNSEC_REGEXTESTBED}
    !insertmacro SELECT_UNSECTION "Reopen Editor plugin"       ${UNSEC_REOPEN}
    !insertmacro SELECT_UNSECTION "Exporter plugin"            ${UNSEC_EXPORTER}
    !insertmacro SELECT_UNSECTION "Spelling plugin"        	   ${UNSEC_SPELLING}
	!insertmacro SELECT_UNSECTION "Random numbers generator"   ${UNSEC_RNDGEN}
	!insertmacro SELECT_UNSECTION "C++ Smart Indent" 		   ${UNSEC_SMARTINDENT_CPP}
	!insertmacro SELECT_UNSECTION "Fortran Smart Indent" 	   ${UNSEC_SMARTINDENT_FORTRAN}
	!insertmacro SELECT_UNSECTION "Lua Smart Indent" 		   ${UNSEC_SMARTINDENT_LUA}
	!insertmacro SELECT_UNSECTION "Pascal Smart Indent" 	   ${UNSEC_SMARTINDENT_PASCAL}
	!insertmacro SELECT_UNSECTION "Python Smart Indent" 	   ${UNSEC_SMARTINDENT_PYTHON}
	!insertmacro SELECT_UNSECTION "VHDL Smart Indent" 	   	   ${UNSEC_SMARTINDENT_VHDL}
	!insertmacro SELECT_UNSECTION "XML Smart Indent" 	   ${UNSEC_SMARTINDENT_XML}
    !insertmacro SELECT_UNSECTION "SymTab plugin"              ${UNSEC_SYMTAB}
    !insertmacro SELECT_UNSECTION "ThreadSearch plugin"        ${UNSEC_THREADSEARCH}
	!insertmacro SELECT_UNSECTION "UUID Generator"			   ${UNSEC_UUID}
    !insertmacro SELECT_UNSECTION "Image Editor plugin"        ${UNSEC_XPMEDITOR}
    !insertmacro SELECT_UNSECTION "wxSmith base plugin"        ${UNSEC_WXSMITH}
 	!insertmacro SELECT_UNSECTION "wxAUI support"			   ${UNSEC_WXSMITH_AUI}
	!insertmacro SELECT_UNSECTION "DateTimePicker control support" ${UNSEC_WXSMITH_DATETIME}
	!insertmacro SELECT_UNSECTION "Styled text control support"   ${UNSEC_WXSMITH_STC}
	!insertmacro SELECT_UNSECTION "Plotting control support"   ${UNSEC_WXSMITH_PLOT}
	!insertmacro SELECT_UNSECTION "Embedded Internet Explorer support" ${UNSEC_WXSMITH_IEXPLORER}
	!insertmacro SELECT_UNSECTION "Contributed items support"  ${UNSEC_WXSMITH_CONTRIB}

    !insertmacro SELECT_UNSECTION "C::B Share Config"          ${UNSEC_SHARECONFIG}

    !insertmacro SELECT_UNSECTION "C::B Portable Launcher"     ${UNSEC_PORTABLE}
!ifdef GCC_BUNDLE
    !insertmacro SELECT_UNSECTION "GCC Compiler Suite"       ${UNSEC_GCC}
!endif
FunctionEnd

########################
# Section Descriptions #
########################

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN

!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_DEFAULT}          "The default install which consists of the Code::Blocks core components and the core plugins."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CORE}                "Code::Blocks core components (without these, Code::Blocks will not work properly)."

!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_DOCS}			 "Optional documentation, such as language reference manuals."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DOCS_CPPREFERENCE}	 "C++ (2003) and STL Reference"
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DOCS_D2REFERENCE}	 "The D 2.0 Programming Language Reference"

!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_SHORTCUTS}        "Shortcuts to be created."
!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_PROGRAM_SHORTCUT} "Creates a shortcut to Code::Blocks in the Start Menu."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_PROGRAMSHORTCUT}     "Create for current user."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_PROGRAMSHORTCUT_ALL} "Create for all users."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DESKTOPSHORTCUT}     "Creates a shortcut to Code::Blocks on the Desktop."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_QUICKLAUNCHSHORTCUT} "Creates a shortcut to Code::Blocks in the Quick Launch Bar."

!insertmacro MUI_DESCRIPTION_TEXT ${SEC_EXPLORERLIBRARY}	 "Creates a Library for Code::Blocks projects (Windows 7 or higher required)."

!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_LEXERS}           "Lexer files provide syntax styling and delimiter matching for different programming languages and others."

!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_CORE_PLUGINS}     "Core plugins that are most likely desired. This includes the compiler and debugger plugin."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_ABBREV}              "Speeds up the code typing with configurable abbreviations."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_ASTYLE}              "Source code formatter. Uses AStyle to reformat your sources."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_AUTOSAVE}            "Saves your work in regular intervals."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CLASSWIZARD}         "Provides an easy way to create a new C++ class file pair."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CODECOMPLETION}      "Provides a symbols browser for your projects and code-completion inside the editor."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_COMPILER}            "Provides an interface to various compilers, including GNU compiler suite, Microsoft, Borland, etc."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DEBUGGER}            "Provides interfaces to the GNU GDB and MS CDB debuggers."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_MIMEHANDLER}         "Provides a (default) files extension handler."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_OPENFILESLIST}       "Shows all currently open files (editors) in a list."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_PROJECTSIMPORTER}    "Imports foreign projects/workspaces (Dev-C++, MSVC6, MSVS7, MSVS8)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SCRIPTEDWIZARD}      "Provides a generic platform for creating project wizards (already includes a lot of wizards)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_TODOLIST}            "Provides a To-Do list and collects items accoringly from source files of a file/project/workspace."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_XPLOOKANDFEEL}       "Creates a manifest file that makes use of common controls 6.0 under Windows XP."
!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_CONTRIB_PLUGINS}  "Contributed plugins by the Code::Blocks user/developer community. These plugins extend the IDE nicely."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_AUTOVERSIONING}      "Auto increments the version and build number of your application every time a change has been made."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_BROWSETRACKER}       "Browse to previous source positions / editors comfortable."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_BYOGAMES}            "Provides a collection of games inside C::B for fun."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CCCC}                "A plugin for code analysis based on Cccc (C and C++ Code Counter)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_EDITORCONFIG}		 "Share editor settings across different IDEs and load them from Code::Blocks."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_EDITORTWEAKS}		 "Plugin that offers several source code editor improvements."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CODEPASTE}           "Plugin for quickly pasting source code online at www.pastebin.com."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CODESNIPPETS}        "Allows to create and save small pieces of code (snippets) for later use."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CODESTAT}            "A plugin for counting code, comments and empty lines of a project."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_COLORCODER}          "User interface for easily choosing colors and pasting C++ source (formatted for OpenGL, wxWidgets, etc.)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_COMPILEONDEMAND}	 "Speeds up development by allowing incremental builds to be triggered on every source code save."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_COPYSTRINGS}         "Copies all the strings in the current editor into the clipboard."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_LISTTOOLBOX}	     "A tool for strings manipulation."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CPPCHECK}            "A plugin for code analysis based on CppCheck."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_CBDIFF}              "Compares source code and generates .diff files."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DEVPAK}              "Installs selected DevPaks from the internet."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DOXYBLOCKS}          "User-friendly doxygen support for Code::Blocks."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DRAGSCROLL}          "Mouse drag and scroll using right or middle mouse key."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_ENVVARS}             "Sets up environment variables within the focus of Code::Blocks."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_FILEMANAGER}         "Browses folders from within Code::Blocks. Highlights SVN managed files."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_FORTRANPROJECT}		 "Extends Code Completion to fully support FORTRAN development."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_HEADERFIXUP}         "Provides analysis of header files according a customisable setup. C::B and wxWidgets are included by default."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_HELP}                "Add a list of help/MAN files to the help menu so you can have them handy to launch."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_HEXEDITOR}           "Provides an embedded very powerful hex editor to Code::Blocks (supports large binary files, too)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_INCREMENTALSEARCH}   "Searches and highlights a marked text incrementally within the open editor."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_KEYBINDER}           "Provides the user an ability to bind custom key combinations to the menu items."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_KODERS}              "Provides an interface to search for code snippets at the Koders webpage."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_LIBFINDER}           "Tool which automatically searches for installed libraries and adds them to global variables and projects."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_MOUSESAP}            "Plugin to provide middle mouse select and paste functionality."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_NASSI}               "Allows the user to generate Nassi Shneiderman diagrams from source code."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_TOOLSPLUS}           "Provides a refined Code::Blocks Tools menu."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_PROFILER}            "Provides a simple graphical interface to the GNU GProf profiler."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_REGEXTESTBED}        "Provides a regular expressions testbed."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_REOPEN}              "Provides the ability to reopen recently closed editor windows."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_EXPORTER}            "Provides the ability to export syntax highlighted source files to HTML, RTF, ODT or PDF."
!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_SPELLING}         "Online spell checking."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING}            "Online spelling checker plugin for Code::Blocks."
!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_SPELLING_DIC}	 "Dictionaries used for spell checking."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_NL_NL}  "Dictionary for Dutch."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_EN_UK}  "Dictionary for U.K. English."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_EN_US}  "Dictionary for U.S. English."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_FR_FR}  "Dictionary for French."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_DE_DE}  "Dictionary for German."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_IT_IT}  "Dictionary for Italian."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_PT_PT}  "Dictionary for Portuguese."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_PT_BR}  "Dictionary for Brazillian Portuguese."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_ES_ES}  "Dictionary for Spanish."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SPELLING_DIC_RU_RU}  "Dictionary for Russian."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_RNDGEN}				 "Generate pseudo-random numbers."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_GRP_SMARTINDENT}	 "Editor Smart Indentation plugins."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_CPP}	 "Smart Indentation for C++."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_FORTRAN} "Smart Indentation for FORTRAN."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_LUA}	 "Smart Indentation for Lua."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_PASCAL}	 "Smart Indentation for Pascal."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_PYTHON}	 "Smart Indentation for Python."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_VHDL}	 "Smart Indentation for VHDL and Verilog."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SMARTINDENT_XML}	 "Smart Indentation for XML."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SYMTAB}              "Provides a simple graphical interface to the GNU symbol table displayer (nm)."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_THREADSEARCH}        "Multi-threaded 'Search in files' with preview window."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_UUID}			 	 "Tool for generating Universally Unique Identifiers."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_XPMEDITOR}           "Provides an embedded image editor to Code::Blocks (supports XPM, BMP and PNG among other formats)."
!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_WXSMITH}          "RAD tool used to create wxWidgets based GUI applications, forms, dialogs, etc."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH}			 "wxSmith RAD designer base plugin."
!insertmacro MUI_DESCRIPTION_TEXT ${SECGRP_WXSMITH_SUPPORT}  "Support for more wxWidgets components in wxSmith."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH_AUI}		 "wxSmith support for Advanced User Interface wxWidgets component."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH_DATETIME}	 "wxDateTimePicker control support."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH_STC}		 "wxStyledTextControl control support."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH_PLOT}		 "wxMathPlot control support."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH_IEXPLORER}	 "wxIExplorer control support for embedding Internet Explorer."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_WXSMITH_CONTRIB}	 "wxSmith support for various community developed wxWidgets components."

!insertmacro MUI_DESCRIPTION_TEXT ${SEC_SHARECONFIG}         "Allows sharing of most important settings between Code::Blocks instances or different users."
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_PORTABLE}            "Allows the use of Code::Blocks in a portable installation (for example, launch the program from a USB drive)."

!ifdef GCC_BUNDLE
	!insertmacro MUI_DESCRIPTION_TEXT ${SEC_GCC}             "Additional setup that will install the GNU compiler suite (requires additional downloads)."
!endif
!insertmacro MUI_FUNCTION_DESCRIPTION_END
